正则表达式子表达式

时间:2009-06-10 15:48:22

标签: .net regex .net-2.0

我正在处理需要标记子表达式的正则表达式(在.Net中)。样本输入是:

  1. EFBCFEyy
    • EFBQFEyyQ
    • EFBQFE yy Q
    • EFBMFEyyMM
    • EFByyMFEMM
  2. 我需要的是提取所有由“yy”或“MM”描绘的子表达式。到目前为止,我所获得的表达式适用于前几个字符串,但不适用于最后一对字符串。可能有空格,它们与周围的非日期格式字符分组。

    使用“/”分隔子表达式,这就是我正在寻找的(分别),粗体部分是我在RegEx评估后需要操作的部分:

    1. EFBCFE / YY
      • EFBQFE / YY /
      • EFBQFE / yy /
      • EFBMFE / YY / MM
      • EFB / YY /的 MFE / MM
    2. 以下是我对前三个有用的内容:

      (.*)(yy|MM)(.*)
      

      我错过了什么?

2 个答案:

答案 0 :(得分:2)

  

“我需要的是提取所有由”yy“或”MM“描述的子表达式。”

yy|MM

这就是你所需要的(除非我对这个问题有所了解)。

申请为“全球”。对我而言,它与大胆的部分相匹配:

  • EFBCFE的 YY
  • EFBQFE的 YY Q
  • EFBQFE yy Q
  • EFBMFE的 YYMM
  • EFB的 YY MFE的 MM

答案 1 :(得分:2)

在Java中,这可以做你想要的:

MyString.split('yy|MM')

如果.NET没有类似的正则表达式分割函数,我会感到惊讶......

我们开始,这看起来是.NET的等价物: http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx

Regex.Split( MyString , 'yy|MM' )