/\((.*)\)/
和/\(([^\)]*)\)/
之間是否存在差異?
特別是,第二個正則表達式匹配一行結束,而第一個不會?「/((.*))/」和「/ (([^ )] *))/」之間是否存在差異?
1
A
回答
4
是的,AFAIK點不匹配大多數正則表達式引擎沒有修飾符。
編輯:顯然JS甚至沒有這個選項。我個人認爲否定性格課是要走的路;我很少在正則表達式中使用這個點。
2
另一個重要的區別是點將匹配)
。假設你是你想在
blah blah (foo) blah blah (bar)
正則表達式/\(.*\)/
將匹配(foo) blah blah (bar)
因爲*
是貪婪匹配第一個括號表達。你可以通過使用一個不情願的量詞來解決這個問題 - /\(.*?\)/
- 但是如果你想匹配最後一個呢?你知道這是字符串中的最後一件事,所以你只需添加字符串尾部的錨點 - /\(.*?\)$/
- 但現在又回到匹配(foo) blah blah (bar)
。在這種情況下,只有否定字符類纔會給你想要的東西:/\([^)]*\)$/
。
相關問題
- 1. concat和||之間是否存在性能差異?在oracle
- 2. NIO和IO管道之間是否存在差異
- 3. .IPA和.APK之間是否存在編碼差異?
- 4. Apache FileUtils.isSymlink和Java7的Files.isSymbolicLink()之間是否存在差異?
- 5. saveAs()和exportDocument()之間是否存在性能差異?
- 6. Android和Windows版本的Android SDK之間是否存在差異?
- 7. 4.2和4.3之間是否存在UIImageView差異?
- 8. 在內存中x ++和++ x之間是否存在差異?相對於語言?
- 9. 遞歸和迭代方法之間是否存在時間複雜度差異?
- 10. 查看和存儲過程之間是否存在任何性能差異
- 11. 這兩個查詢之間是否存在性能差異?
- 12. 多個if語句之間是否存在差異?
- 13. 是否存在兩個JSON之間差異的既定表示?
- 14. objective-c和Java或iPhone和Android之間是否存在巨大差異?
- 15. 在Java中,新建和本地之間是否存在性能差異?
- 16. 它是0和-0之間的差異
- 17. 單鏈表和雙鏈表之間是否存在性能差異?
- 18. WPF中的頁面和窗口之間是否存在加載速度差異?
- 19. Linqs查詢表達式和點符號之間是否存在性能差異?
- 20. .net命名約定:長度和計數之間是否存在語義差異?
- 21. 運行.NET 3.5進程時,.NET 4和.NET 3.5之間是否存在差異
- 22. 數組和矩陣運算符之間是否存在性能差異?
- 23. SOLR 1.3和SOLR 3.4之間是否存在任何主要的模式差異?
- 24. 使用ScaleTransform和直接設置大小之間是否存在性能差異?
- 25. /dev/zero和/ dev/null之間是否存在任何實現差異?
- 26. if-check和inline條件之間是否存在編譯器差異?
- 27. int和僅包含int的結構之間是否存在性能差異?
- 28. int i = 0和int i = default(int)之間是否存在性能差異?
- 29. 訪問struct成員的` - >`和`.`之間是否存在顯着差異?
- 30. std :: set :: iterator和std :: set :: const_iterator之間是否存在操作差異?
'[\ s \ S]'是JavaScript中「任何包括換行符」的最常用成語。和+1避免點;通過強迫自己思考正則表達式引擎正在做什麼,這是一種改進正則表達式的好方法。 – 2010-07-08 15:53:32