首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于正则表达式解析的.NET正则表达式

用于正则表达式解析的.NET正则表达式
EN

Stack Overflow用户
提问于 2010-04-08 03:42:11
回答 2查看 347关注 0票数 1

我想从正则表达式字符串中返回匹配项。正则表达式字符串为:

代码语言:javascript
复制
(?<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)

我希望获得所有组名的匹配项,以及左括号和闭括号之外的方括号(包括方括号)中的所有项。我有这个正则表达式:

代码语言:javascript
复制
((?<=[<])([A-Z]|[_])+(?=[>]))|(\\[.\\])

但这将返回括号内的方括号项目。更具体地说,这些是我希望从顶部的正则表达式中获得的匹配(请记住,这对于任何正则表达式都需要灵活):

代码语言:javascript
复制
TICKER
SPACE
MONTH_ALPHA_ABBREV
SPACE
DAY
SPACE
YEAR_LONG
SPACE
STRIKE_DOLLAR
[.]
STRIKE_DECIMAL
SPACE
PUTCALL_LONG
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-08 04:30:01

代码语言:javascript
复制
((?<=[<])([A-Z]|[_])+(?=[>]))|(?<!\([^\)]*)\[[^\]]+\]

另外,使用@""表示法,这样就不必转义反斜杠(就像在示例代码中一样)。这只小狗已经很难辨认了。

票数 2
EN

Stack Overflow用户

发布于 2010-04-08 03:47:01

当您匹配您的正则表达式时,您可以将选项设置为包含RegexOptions.ExplicitCapture,这将只捕获指定的组,通常会捕获括号内的所有内容。然后,您可以使用此格式将所有捕获组命名为(?<captureGroupName>[insertRegExHere])。这允许您捕获您喜欢的任何内容,并使用合理的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2595381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档