如何编写匹配任何这些字符的正则表达式
[a-z.' ]
但不包括这个表达式
(?:bl(?: |\. |\.)ah)
?
表达式可能出现 {0,} 次,出现在字符串的开头、中间或结尾
如何编写匹配任何这些字符的正则表达式
[a-z.' ]
但不包括这个表达式
(?:bl(?: |\. |\.)ah)
?
表达式可能出现 {0,} 次,出现在字符串的开头、中间或结尾
使用负面的展望:
^(?!.*bl[. ]*ah)[a-z.' ]*
如果您想对“blah”中的最大干预字符数持怀疑态度:
^(?!.*bl[. ]{,2}ah)[a-z.' ]*
除非我遗漏任何东西,否则以下模式应该匹配。你可能想用边界字符包裹“blah”——\bblah\b
(?<=^|[^a-z.' ]|blah)(?:(?!blah)[a-z.' ])+
与您的主要模式(需要避免bl ah
,bl. ah
和bl.ah
)一样
~
(?<=^|[^a-z.' ]|bl[. ]ah|bl\.\ ah)
(?:(?!bl(?:\ |\.\ ?)ah)[a-z.' ])+
~ix
向后看的坏事是,您需要声明精确的长度。因此,您需要在后视中明确写出您想要(或不想要)的内容。