2015-04-20 4 views
-2

Мне нужно найти соответствующие строки на основе определенного состояния.Regex: найти соответствующие символы

В качестве примера строка, я имею:

700PXNNEKPQ059D 

условия являются:

  1. Строка должна начинаться с «7» и 5-й символ должен быть «Y», и 10-ый символ "М" и 11-й символ "А"

    , если (строка [0] == "7" & & (строка [4] == "Y" & & строка [9] == "М" & & строка [10] == "А") { // Сопрягано }

  2. Строка должна начинаться с "7" и (5-й символ «М "или 10-е является" W ")

    if (string [0] ==" 7 "& & (string [4] ==" M "|| Строка [9] == "W") { // Сопрягано }

регулярное выражение ниже того, что я придумал, и это не выглядит хорошо для меня!

Я бы в идеале хотел бы придумать один RegEx, который имеет в нем как выше условия.

^7...[YW]....[M] 
+6

Ваше предложенное регулярное выражение имеет приблизительно нулевой сходство с критериями, указанными в вашем вопросе. Конечно, вы могли бы хотя бы попытаться решить эту проблему самостоятельно. –

+1

Также какова природа других частей строки, только цифры и/или буквы? – Enissay

+0

Строка будет содержать буквенно-цифровые символы и тире "-" – donguy76

ответ

2

Вы можете использовать

^7.{3}[MY].{4}[MW]A 

Он соответствует всем вашим критериям.

Edit: Если вы хотите, чтобы строго соответствовать критериям, вы можете использовать

(^7.{3}Y.{4}WA)|(^7.{3}M.{5})|(^7.{8}W) 
+0

Вы можете сделать это еще короче ... '(^ 7. {3} Y. {4} WA) | (^ 7. {3} M. {5}) | (^ 7. {8} W)' – ptierno

+0

Обновлено .. спасибо :) –

Смежные вопросы