我想从正则表达式字符串中返回匹配项。正则表达式字符串为:
(?<TICKER>[A-Z]+)(?<SPACE>\\s)(?<MONTH_ALPHA_ABBREV>Jan|Feb|Mar|Apr|May|Jun|Jul|Sep|Oct|Nov|Dec)(?<SPACE>\\s)(?<DAY>\\d+)(?<SPACE>\\s)(?<YEAR_LONG>[2][0][0-9][0-9])(?<SPACE>\\s)(?<STRIKE_DOLLAR>\\d+(?=[.]))[.](?<STRIKE_DECIMAL>(?<=[.])\\d+)(?<SPACE>\\s)(?<PUTCALL_LONG>Call|Put)我希望获得所有组名的匹配项,以及左括号和闭括号之外的方括号(包括方括号)中的所有项。我有这个正则表达式:
((?<=[<])([A-Z]|[_])+(?=[>]))|(\\[.\\])但这将返回括号内的方括号项目。更具体地说,这些是我希望从顶部的正则表达式中获得的匹配(请记住,这对于任何正则表达式都需要灵活):
TICKER
SPACE
MONTH_ALPHA_ABBREV
SPACE
DAY
SPACE
YEAR_LONG
SPACE
STRIKE_DOLLAR
[.]
STRIKE_DECIMAL
SPACE
PUTCALL_LONG发布于 2010-04-08 04:30:01
((?<=[<])([A-Z]|[_])+(?=[>]))|(?<!\([^\)]*)\[[^\]]+\]另外,使用@""表示法,这样就不必转义反斜杠(就像在示例代码中一样)。这只小狗已经很难辨认了。
发布于 2010-04-08 03:47:01
当您匹配您的正则表达式时,您可以将选项设置为包含RegexOptions.ExplicitCapture,这将只捕获指定的组,通常会捕获括号内的所有内容。然后,您可以使用此格式将所有捕获组命名为(?<captureGroupName>[insertRegExHere])。这允许您捕获您喜欢的任何内容,并使用合理的名称。
https://stackoverflow.com/questions/2595381
复制相似问题