Подвыражения регулярных выражений - PullRequest
0 голосов
/ 10 июня 2009

Я работаю над регулярным выражением (в .Net), которому нужно пометить подвыражения. Примеры входных данных:

  1. EFBCFEyy
    • EFBQFEyyQ
    • EFBQFE yy Q
    • EFBMFEyyMM
    • EFByyMFEMM

Что мне нужно, это вытащить все подвыражения, обозначенные как «уу» или «мм». Выражение, которое у меня есть, работает для первых нескольких строк, но не для последней пары. Могут быть пробелы, которые группируются с символами не в формате даты вокруг них.

С помощью "/", чтобы отделить подвыражения, это то, что я ищу (соответственно), с полужирными частями, которые мне нужно манипулировать после оценки RegEx:

  1. EFBCFE / уу
    • EFBQFE / уу / Q
    • EFBQFE / гг / Q
    • EFBMFE / уу / MM
    • EFB / уу / MFE / MM

Вот что у меня работает для первых трех:

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

Что мне не хватает?

Ответы [ 2 ]

2 голосов
/ 10 июня 2009

В Java это будет делать то, что вы хотите:

MyString.split('yy|MM')

Я был бы удивлен, если бы в .NET не было подобной функции разделения регулярных выражений ...

Итак, это выглядит как эквивалент .NET: http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx

Regex.Split( MyString , 'yy|MM' )
2 голосов
/ 10 июня 2009

«Мне нужно вытащить все подвыражения, обозначенные как« yy »или« MM ».»

yy|MM

Это все, что вам нужно (если я не понимаю вопрос).

Применить как "глобальный". Для меня это соответствует жирным частям:

  • EFBCFE уу
  • EFBQFE уу Q
  • EFBQFE гг Q
  • EFBMFE YYMM
  • EFB уу MFE MM
...