正则表达式子表达式
我正在研究一个需要标记子表达式的正则表达式(在.Net 中)。 示例输入为:
- EFBCFEyy
- EFBQFEyyQ
- EFBQFE yy Q
- EFBMFEyyMM
- EFByyMFEMM
我需要的是取出所有由“yy”或“MM”描述的子表达式。 到目前为止,我得到的表达式适用于前几个字符串,但不适用于最后一对。 可能有空格,它们与周围的非日期格式字符组合在一起。
用“/”分隔子表达式,这就是我要寻找的(分别),粗体部分是我在正则表达式求值后需要操作的部分:
- EFBCFE/yy
- EFBQFE/yy/Q
- EFBQFE /yy/ Q
- EFBMFE/yy/MM
- EFB/yy/MFE/MM
以下是适用于前三个的内容:
(.*)(yy|MM)(.*)
我缺少什么?
I'm working on a regular expression (in .Net) that needs to mark subexpressions. Sample inputs are:
- EFBCFEyy
- EFBQFEyyQ
- EFBQFE yy Q
- EFBMFEyyMM
- EFByyMFEMM
What I need is to pull out all of the sub-expressions delineated by "yy" or "MM". The expression I've got so far works for the first few strings, but not the final pair. There may be spaces, which get grouped in with the non-date-format characters around them.
With "/" to separate the subexpressions, this is what I'm looking for (respectively), with the parts in bold being the ones I need to manipulate after the RegEx has evaluated:
- EFBCFE/yy
- EFBQFE/yy/Q
- EFBQFE /yy/ Q
- EFBMFE/yy/MM
- EFB/yy/MFE/MM
Here's what I have that works for the first three:
(.*)(yy|MM)(.*)
What am I missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Java 中,这将满足您的要求:
如果 .NET 没有类似的正则表达式拆分函数,我会感到惊讶...
我们开始吧,这看起来与 .NET 等效:
http://msdn.microsoft.com/en-us/library/8yttk7sy。 ASPX
In Java, this would do what you want:
I'd be surprised if .NET doesn't have a similar regex split function...
Here we go, this looks to be the .NET equivalent:
http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx
这就是你所需要的(除非我不太明白这个问题)。
申请为“全球”。 对我来说,它匹配粗体部分:
That's all you need (unless I minunderstand the question).
Apply as "global". For me it matches the bold parts: