-1
A
回答
3
你不需要在正則表達式中轉義' - '。它只是[...]
字符類規範中的一個元字符。
如果這是Java String文字,然後第一'\'
將難逃第二'\'
這將在正則表達式...這完全是無稽之談給\-
。
如果這不是一個字符串文字,那麼第一個'\'
正在逃避正則表達式中的第二個'\'
。這不是無稽之談。這意味着匹配一個反斜槓字符。
1 - 它是,但是,法律廢話。 javadoc說:「反斜槓可能在非字母字符之前使用,無論該字符是否是未轉義結構的一部分。」冗餘反斜槓將被忽略。
1
我打算假定您所指的字符串文字將在Java程序中寫爲"Print\\-Services"
。在這種情況下,正則表達式將包含一個轉義的' - '字符,這並不合理,但顯然不會被java.util.regex.Pattern視爲錯誤。根據JavaDoc:
反斜線可先於一個非字母字符而不管該字符是否是未逸出構建體的一部分 使用。
舉個例子:
Pattern pattern1 = Pattern.compile("Print\\-Services");
Pattern pattern2 = Pattern.compile("Print-Services"); // No PatternSyntaxException
// Pattern pattern3 = Pattern.compile("Print\-Services"); // Not valid Java syntax
我沒有測試真正徹底,但現在看來,模式被忽略轉義字符。
System.out.println(pattern1.matcher("Print-Services").matches()); // true
System.out.println(pattern2.matcher("Print-Services").matches()); // true
看起來似乎是誰提供的那個例子給出了一個令人困惑或困惑的例子。
相關問題
- 1. 正則表達式的正則表達式是什麼?
- 2. 下面的模式會是什麼樣的正則表達式?
- 3. 什麼是正確的正則表達式來提取HREF ID下面的HTML JMeter的正則表達式
- 4. 下面的php正則表達式評估的是什麼?
- 5. python中下面的正則表達式是什麼?
- 6. 爲什麼不是下面的正則表達式工作?
- 7. 什麼是以下的java正則表達式?
- 8. 是什麼?你在正則表達式
- 9. ^0 *正則表達式是不是正則表達式中使用的Java
- 10. 這是什麼Java正則表達式代碼在做什麼?
- 11. 在這種情況下正則表達式的正確使用是什麼?
- 12. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 13. 爲什麼下面的正則表達式在vim中不起作用? (具體而言,?在正則表達式)
- 14. 什麼是好的正則表達式?
- 15. 什麼是「Test123」的正則表達式
- 16. 這是在java中的正則表達式是什麼?
- 17. 正則表達式模式的正則表達式模式是什麼?
- 18. 什麼正則表達式庫使用
- 19. 爲什麼下面的正則表達式不起作用?
- 20. 「[^]」正則表達式模式的含義是什麼(javascript正則表達式)?
- 21. 爲什麼Java有一個replaceAll(正則表達式,替換),但replaceAll(正則表達式,正則表達式)?
- 22. 這是什麼正則表達式?
- 23. 什麼是正則表達式?
- 24. Lex這是什麼正則表達式
- 25. 什麼是(\\&| $)正則表達式匹配
- 26. 這是什麼正則表達式?
- 27. 什麼是前綴正則表達式?
- 28. 什麼是正則表達式或?
- 29. 正則表達式:什麼是InCombiningDiacriticalMarks?
- 30. 這是什麼正則表達式?
我不會說這是無意義的。這只是冗餘語法。 – nhahtdh 2013-04-27 04:11:13
@nhahtdh - 你可以自由地寫你自己的答案,說:-) – 2013-04-27 11:43:16
那麼,我認爲這是一個有點矯枉過正的答案。 – nhahtdh 2013-04-27 11:45:24