我見過\ 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正則表達式
- 2. 正則表達式「,\\ s(。*?),\\」
- 3. 正則表達式\\ s *,\\ s *做什麼?
- 4. 正則表達式(\ S +?)vs(\ S +))
- 5. 正則表達式for(... Excludes-> \([\ s \ S] + \)...)?
- 6. 正則表達式[\ S但不是[[\ S?
- 7. S的正則表達式/ ^(*。):\ S * //
- 8. 正則表達式: 「* \\ S([0-9] +)\\ snomination * $」。
- 9. 正則表達式/##if##(.*?)(.*?)##end_if##/s
- 10. 是什麼`\\ s`正則表達式中
- 11. Glib ::正則表達式拾取TextTag-s
- 12. 正則表達式/^\ s * $/do是什麼?
- 13. 這個正則表達式符合什麼? /([^「^ \ s] +)\ s * |」([^「] +)」\ s */g
- 14. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 15. 正則表達式的表達式的Java \\小號與\\ S +
- 16. PHP-MySQLi替換爲正則表達式/正則表達式/正則表達式
- 17. 正則表達式(正則表達式)
- 18. 正則表達式(正則表達式)
- 19. 正則表達式(正則表達式)
- 20. 這個正則表達式有什麼問題:/(?:(?:^ | \ s)hide _([^ \ s] +))+ /?
- 21. 正則表達式捕獲字符串「\ s @ \ s」,只有那
- 22. 瞭解正則表達式[\ S \ S - [<>] *
- 23. 如何優化此C#正則表達式? 「^ \ S([ - *] | [。] \ d +)?\ S +」
- 24. r中正則表達式中`\\ s | *`和`\\ s | [*]`的區別?
- 25. 正則表達式中的\(\((。+?)\)\)和\(\(\ s *(。+?)\ s * \)\)有什麼區別?
- 26. 正則表達式
- 27. 正則表達式
- 28. 正則表達式
- 29. 這個正則表達式有一個或兩個組嗎? 「^ \\ s *(。*?)\\ s + - \\ s +'(。*)'\\ s * $」
- 30. 正則表達式
正如你可以在答案和評論中看到的那樣:如果你提供了這個問題所涉及的特定的正則表達式引擎,這將是一件好事。 – musiKk 2010-11-11 08:53:18