Извлечь номер строки с помощью регулярного выражения - PullRequest
0 голосов
/ 17 февраля 2019

У меня проблема с регулярным выражением.Моя цель - получить номер всякий раз, когда число стоит за этими символами:

  1. ‚G '
  2. ‚ H'
  3. ‚S '
  4. ‚T '
  5. ‚ T26'
  6. ‚T '
  7. ‚ W'

Итак, вы видите, у нас есть 6 разслучай с пробелами и один случай (номер 6), где у нас нет пробелов для сопоставления.

Я пытался создать регулярное выражение для случаев 4. и 6. Пока это мое регулярное выражение:

/[T](?:\ )?\d+/

Или это еще одно решение, которое я получил до сих пор:

/([T](?:\ )|([GHSW]|(T26))\ )?\d+/

Тем не менее, я не получаю номер, я также получаю обратно символ T. Как я могу получить только номер обратно, и есть ли какое-то простое решение, чтобы вместо этого одно регулярное выражение соответствовало всем символамсоздания 6 регулярных выражений if. ..?

Пример ввода:

Здравствуйте, меня зовут G 25 - Альфред.Я H 26, проверяющий новое регулярное выражение S2 и S 5, это мой T3 test T 4 regex text.Мой T26 2 и мой T265 - это новый W2, а также W 4.

Что я хочу (вывод):

  1. 25 после G
  2. 26 после H
  3. 5 после S (не 2, потому что между S и цифрой нет пробела. Это также относится к G, H, S и W)
  4. 3 и 4 после T (если это T, может быть пробел, но это не обязательно)
  5. 2 после T26 (но не 5 или 265 после T265потому что после T26 должен быть пробел)

С уважением и Спасибо!

1 Ответ

0 голосов
/ 17 февраля 2019

Это регулярное выражение должно делать то, что вы хотите.Он ищет один из

  1. [GHSW], за которым следует пробел, или
  2. T26, за которым следует пробел, или
  3. T, за которым следует пробел.необязательный пробел

и некоторые цифры, захваченные в группе 1:

(?:[GHSW]\s|T26\s|T(?!26)\s?)(\d+)

Демонстрация по регулярному выражению regex101

Если вы хотите толькочтобы захватить цифры в совпадении, и ваш вариант regex поддерживает lookbehinds, вы можете использовать это вместо:

(?<=[GHSW]\s|T26\s|T(?!26) |T(?!26))\d+

Обратите внимание, что мы должны указывать как T с пробелом, так и без отдельно, чтобы гарантировать, что lookhhindфиксированной ширины

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...