如何编写匹配任何这些字符的正则表达式
[a-z.' ]
但不包括此表达
(?:bl(?: |\. |\.)ah)
表达式可能出现{0,}次,在字符串的开头,中间或结尾
答案 0 :(得分:1)
除非我遗漏任何内容,否则以下模式应该匹配。您可能希望用“\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
有了lookbehinds的坏事,你需要声明精确的长度。因此,您需要在lookbehind中明确地写出您想要(或不想)的内容。
答案 1 :(得分:1)
使用负面展望:
^(?!.*bl[. ]*ah)[a-z.' ]*
如果你想对“blah”中干预字符的最大数量感到迂腐:
^(?!.*bl[. ]{,2}ah)[a-z.' ]*