Perhaps he hadn't. [Perhaps he didn't?]Perhaps he didn't.[Perhaps he hadn't?]我想匹配括号中的位;以“也许”开头并以问号结尾的句子。我认为这个正则表达式会起作用:Perhaps.*(?!=\.)\?但是,我得到的是:[Perhaps he hadn't. Perhaps he didn't?]Perhaps he didn't.[Perhaps he hadn't?]为什么是这样?以及如何解决?https://regexr.com/5dfhs
1 回答
波斯汪
TA贡献1811条经验 获得超4个赞
您可以像这样使用否定字符类:
/Perhaps[^.?]*\?/g
要匹配完整的单词使用:
/\bPerhaps[^.?]*\?/
并避免跨行匹配使用:
/\bPerhaps[^.?\r\n]*\?/
这里[^.?]
会匹配除.
and之外的任何字符?
关于你的正则表达式:
(?!=\.)
实际上是负面前瞻的错误语法。=
如果我们有文字和前面,它只是意味着不匹配.
。
即使您更正它以使用Perhaps.*(?!\.)\?
它仍然无法工作,因为(?!\.)
只会应用于匹配?
并且总是会成功。
虽然不推荐,但如果你真的想使用负前瞻,那么使用:
/Perhaps(?:(?!\.).)*\?/
添加回答
举报
0/150
提交
取消