我知道我可以做以下[^ h]让所有的匹配接受'h'的匹配。 我该如何处理整个单词,例如^(字)在正则表达式的词停止
2
A
回答
9
如果你想匹配的字符串不等同于foo
:如果你想匹配的字符串不含foo
^(?!foo).*$
:
^(?!.*foo).*$
如果你想匹配一个不包含foo
的字符串作为完整的字:
^(?!.*\bfoo\b).*$
如果你想直到foo
出现匹配的字符串,并foo
之前停止比赛:
^(?:(?!foo).)*
这些解决方案不处理换行符的字符串,所以你可能需要设置相应的正则表达式选项,如.NET中的RegexOptions.Singleline
(如果这是一个问题)。
(?!foo)
是zero-width negative lookahead expression,这意味着它声称是不可能的(“负”)来匹配foo
以下字符串中的当前位置(“看提前”),而不是消耗在比赛中的任何字符尝试(“零宽度”)。
3
真的没有什么好的方法可以用正则表达式来做到这一点。你可以得到的最接近的是使用negative lookahead会发现正则表达式只有它不是随后在负向前查找字符串...:
foo(?!word)
只能找到后面没有word
foo
。
同样存在看着身后(而不是向前):
(?<!word)foo
只能找到foo
如果它没有通过word
之前。
相关问题
- 1. 正则表达式停止不工作
- 2. 正则表达式停止崩溃
- 3. 分词正则表达式
- 4. JavaScript的正则表达式 - 替换字符串停用词
- 5. java的正则表达式量词
- 6. Windows受限词的正则表达式
- 7. 正则表达式量词的java
- 8. 正则表达式匹配后的词
- 9. PHP的正则表达式匹配词
- 10. 正则表达式(正则表达式)
- 11. 正则表达式(正则表达式)
- 12. Python正则表达式在第一个“|”后停止比赛
- 13. 正则表达式在第一次出现时不停止
- 14. 在正则表达式中禁止“//”(javascript)
- 15. 的fail2ban正则表达式停止工作[Debian的8 - 杰西]
- 16. 单词正则表达式红宝石
- 17. 正则表达式嵌套量词+
- 18. 正则表达式寻找单词
- 19. 正则表达式确保单词GO
- 20. 正则表达式词法分析
- 21. 正则表达式 - 匹配一组词
- 22. 正则表达式量词OR
- 23. 正则表达式来匹配单词
- 24. 正则表达式筛选常用词
- 25. 正则表达式排除一个词
- 26. 正则表达式匹配两个词
- 27. 用正则表达式提取单词
- 28. 正则表达式解析长词
- 29. 正则表达式到2个词语
- 30. 正则表达式和词干
请正确解释您的问题 – Rozuur 2011-01-12 10:05:04