Regex - проверять наличие специального токена, за которым не следует ни один символ до конца строки - PullRequest
0 голосов
/ 30 сентября 2019

Итак, я хочу сделать следующее: у меня есть специальный символ @, который я хочу запечатлеть, если и только если за ним не следует ни один алфавитный символ вплоть до самого конца документа. Итак:

  • @\n\n ASBCDSA - должно произойти сбой
  • @\n\n\n\n\t - должно пройти

Есть идеи, как это сделать?

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Если вы хотите захватить только символ @, используйте команду lookahead:

(?i)@(?=[^a-z]*\z)
  1. (?i) Установите флаг без учета регистра.
  2. @ Lookдля @.
  3. (?=[^a-z]*\z) Если и только если @, если за ним следуют 0 или более неалфавитных символов, за которыми следует конец строки.
0 голосов
/ 30 сентября 2019

Исходя из вашего примера, вы хотите, чтобы @ был последним символом, за которым следует только пробел. В этом случае вам понадобится @\s*\z, который будет совпадать только в том случае, если после знака @ до конца документа ничего нет, кроме табуляции, пробелов или новых строк.

(Если это не так, иу вас все хорошо с символами, числами и другими вещами, вместо этого вы можете сделать @[^\w]*\z.

Попробуйте это здесь!

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