我有一些类似于以下的字符串模式
and
第1组将是以下字符的混合字符
(1)包括a-zA-Z,但不包括BCD
(2)包含\ s但不包含\ t
如何为group1使用正则表达式?
像这样吗? ([a-zA-Z | ^ BCD] + | [\ s | ^ \ t] +)
实际上,我想做的是
(group 1)[(group 2)]
我想使用 regex方法包含John并排除Jahn,Jaja和laja。
这将在一个正则表达式声明中包括一些特定的模式,并排除某些特定的模式。
答案 0 :(得分:2)
当前的Perl正则表达式无法修改字符类;如果要从字符类中排除某些字符,只需枚举所需的字符即可。
{[a-zA-Z]
减去[BCD]
是[a-zAE-Z]
。
\s
减去\t
是[\n\f\r ]
(还取决于标志等;请参见https://perldoc.perl.org/perlrecharclass.html)