Perl соответствует некоторому символу, но не включает кого-то - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть несколько строковых шаблонов, таких как следующие

(group 1)[(group 2)]

группа 1 будет состоять из следующих символов:

(1) включает a-zA-Z, но не BCD

(2) включает \ s, но не \ t

Как я могу использовать регулярные выражения для группы1?

как это? ([a-zA-Z | ^ BCD] + | [\ s | ^ \ t] +)

На самом деле, я хочу сделать

John [….]
John [….]
John [….]
Jahn [….]
Jaja [….]
laja [….]
…

Я хочу использовать метод регулярных выражений , чтобы включить Джона и исключить Джана, Джаджу, Лайю.

Это включает некоторые определенные шаблоны и исключает некоторые конкретные шаблоны в одном объявлении регулярного выражения.

1 Ответ

0 голосов
/ 14 ноября 2018

В текущем регулярном выражении Perl нет способа изменить класс символов;если вы хотите исключить что-либо из класса символов, вам просто нужно перечислить нужные символы.

[a-zA-Z] минус [BCD] равно [a-zAE-Z].

\s минус \t равно [\n\f\r ] (также в некоторой степени зависит от флагов и т. Д .; см. https://perldoc.perl.org/perlrecharclass.html)

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