我见过\ s ++,但我不确定它是什么意思。你能用一个例子吗? (\ s表示空格) s ++正则表达式
1
A
回答
6
\s++
表示匹配一个或多个空格字符所有者。
这和写作(?>\s+)
一样。额外的加号使它成为所有格,就像一个独立的小组。
这说明了区别:
% perl -Mre=debug -le 'print (("a " . " " x 300 . "x") =~ /a\s+\d/ || 0)' | & wc -l
621
% perl -Mre=debug -le 'print (("a " . " " x 300 . "x") =~ /a\s++\d/ || 0)' | & wc -l
26
我数正则表达式引擎多少步需要解决比赛。虽然没有匹配,但它不知道。它在第一种情况下尝试了一堆真正愚蠢的东西,即所有格匹配阻止它在第二种情况下尝试。一旦所有格匹配完成,它就不能被回溯并重新计算。
+0
您可能想要添加的只有Java,Perl(较新版本),PCRE(PHP的preg引擎等)以及JGSoft引擎支持所有格量词。所有这些,以及.NET和Ruby也支持原子组''(?> ...)',所以使用它们的正则表达式更具可移植性。 – 2010-11-11 09:02:23
+0
@Tim:我想,既然他在代码中发现它运行find,那不是一个可移植性的东西,它只是不知道它在那种语言中的含义。我不了解'++'的任何其他含义。 – tchrist 2010-11-13 10:53:17
相关问题
- 1. S的正则表达式/ ^(*。):\ S * //
- 2. 正则表达式[\ S但不是[[\ S?
- 3. 正则表达式/^\ s * $/do是什么?
- 4. 正则表达式/##if##(.*?)(.*?)##end_if##/s
- 5. Glib ::正则表达式拾取TextTag-s
- 6. 这个正则表达式符合什么? /([^“^ \ s] +)\ s * |”([^“] +)”\ s */g
- 7. 正则表达式正则表达式正则表达式使用正则表达式,但不是与Python
- 8. 正则表达式的表达式的Java \\小号与\\ S +
- 9. PHP-MySQLi替换为正则表达式/正则表达式/正则表达式
- 10. 正则表达式(正则表达式)
- 11. 正则表达式(正则表达式)
- 12. 如何优化此C#正则表达式? “^ \ S([ - *] | [。] \ d +)?\ S +”
- 13. 正则表达式
- 14. 正则表达式
- 15. 正则表达式
- 16. 正则表达式
- 17. 这个正则表达式有一个或两个组吗? “^ \\ s *(。*?)\\ s + - \\ s +'(。*)'\\ s * $”
- 18. 正则表达式/
- 19. 正则表达式
- 20. 正则表达式
- 21. 正则表达式?
- 22. 正则表达式
- 23. 正则表达式
- 24. 正则表达式正则表达式匹配字符串
- 25. 正则表达式正则表达式返回的值正则表达式
- 26. 正则表达式正则表达式模仿正则表达式
- 27. 正则表达式
- 28. @正则表达式
- 29. PHP的正则表达式的JavaScript正则表达式
- 30. 正则表达式的正则表达式的挑战
正如你可以在答案和评论中看到的那样:如果你提供了这个问题所涉及的特定的正则表达式引擎,这将是一件好事。 – musiKk 2010-11-11 08:53:18