回答
\#
不是有效的正則表達式修飾符。從技術上講,這是一種逃避#
特性的方法,如果#
意味着Java正則表達式中任何重要的東西。因爲它沒有,Java只是忽略了這個無效,並且將其作爲#
讀取,而不是拋出一個錯誤。
[The documentation](http://docs.oracle.com) /javase/6/docs/api/java/util/regex/Pattern.html#compile(java.lang.String))實際上解釋了這一點:「在任何不表示字符的字符之前使用反斜槓是錯誤的一個轉義構造;這些保留用於未來對正則表達式語言的擴展。反斜槓可以在非字母字符之前使用,而不管該字符是否是非轉義構造的一部分。 – millimoose
@millimoose極好的發現。 – Eric
正如您所懷疑的那樣,這只是一個錯誤。
可以肯定的,我跑:
String quote = Pattern.quote("_#_");
輸出功率爲:
"\Q_#_\E"
因此,很明顯,英鎊符號( 「#」)不是java的正則表達式特殊字符。
我只是有這個同樣的問題。事實證明,當將所有「舊代碼」從#
更改爲|
時,以前的程序員「錯過了」,這是一個簡單的錯誤。我通過檢查應用程序中的所有其他代碼發現了這一點,發現沒有其他#
符號,但包含許多與|
類似的代碼區域。 |
就在此代碼的#
的旁邊。所以有人正在換掉舊的正則表達式來換取新的正則表達式並且「錯過」了。
- 1. 需要正則表達式來包含哈希(英鎊)字符
- 2. 正則表達式:單詞開頭的英鎊符號
- 3. Javascript正則表達式英鎊符號之間的匹配
- 4. #(英鎊)符號的含義
- 5. 正則表達式的含義(正則表達式高爾夫)
- 6. 正則表達式中`$/i`的含義
- 7. \'.-在正則表達式中的含義
- 8. 正則表達式在Javascript中查找URL中的英鎊符號?
- 9. 這個正則表達式的含義
- 10. 正則表達式的含義Python
- 11. 正則表達式的含義
- 12. 「[^]」正則表達式模式的含義是什麼(javascript正則表達式)?
- 13. 基本正則表達式含義?
- 14. Python的正則表達式英國數
- 15. 正則表達式「包含」另一個正則表達式
- 16. 正則表達式到英文
- 17. 英國日期正則表達式
- 18. 英雄正則表達式挑戰
- 19. 英語正則表達式在C#
- 20. 僞英文到正則表達式
- 21. StringEscapeUtils escapeJava正在轉義英鎊標誌
- 22. 轉義正則表達式
- 23. 定義正則表達式
- 24. grep的正則表達式中的「*」的含義
- 25. 正則表達式(正則表達式)
- 26. 正則表達式(正則表達式)
- 27. 正則表達式(正則表達式)
- 28. 的\\ 1含義*運營商在Java中的正則表達式
- 29. VB.net中英國電話格式的ASP正則表達式
- 30. 正則表達式中/ gi的含義是什麼?
\#不是修飾符。 – Toto
不是\轉義字符嗎?不確定#的目的。 – AxGryndr
它可能起源於使用'#'作爲分隔符的PCRE正則表達式。 – Joey