0
A
回答
8
它匹配任何不是反斜槓\
的單個字符,後跟一個結束方括號]
。
這些字符串匹配:
"[]" =~ /[^\\]\]/; # []
"[abc]def" =~ /[^\\]\]/; # c]
這些字符串不匹配:
"]" =~ /[^\\]\]/; # No character preceding ]
"[\]" =~ /[^\\]\]/; # Backslash preceding ]
如果你想通過\
只要它之前沒有匹配]
,使用否定後向斷言而不是負面字符類:
/(?<!\\)\]/
(或看到評論)
4
我知道這是一個Perl問題,但是如果你安裝了Python,它可以有助於調試像這樣的正則表達式。
$ python
>>> import re
>>> re.compile(r"[^\\]\]", re.DEBUG)
not_literal 92
literal 93
這就告訴我們,它的尋找,是不是ASCII 92(反斜槓\
),其次是字符的ASCII 93(右括號]
)的任何字符。
我現在看到Perl有一個類似的功能。看起來不太友善。
$ perl
use re 'debug';
/[^\\]\]/;
Compiling REx "[^\\]\]"
Final program:
1: ANYOF[\0-[\]-\377][{unicode_all}] (12)
12: EXACT <]> (14)
14: END (0)
anchored "]" at 1 (checking anchored) stclass ANYOF[\0-[\]-\377][{unicode_all}] minlen 2
+1
哇。我按照你提交的內容寫下了這個。殺死我的帖子。 – hughdbrown
+0
有一個're.DEBUG'modifier? _我不知道!_謝謝你的提示! +1 – ridgerunner
相關問題
- 1. 這個正則表達式爲什麼匹配這麼多?
- 2. 這個正則表達式匹配什麼/什麼時候?
- 3. 匹配這個正則表達式:qr /(?!)/;
- 4. 什麼是(\\&| $)正則表達式匹配
- 5. '\ $'正則表達式匹配什麼?
- 6. 爲什麼這個正則表達式在Perl中不匹配?
- 7. 爲什麼這個正則表達式不匹配?
- 8. 這個正則表達式匹配什麼? \\ b $ {0}。*
- 9. 什麼導致這個正則表達式匹配一切?
- 10. 這個正則表達式匹配什麼
- 11. 爲什麼這個正則表達式不匹配HTML標籤?
- 12. 爲什麼這個正則表達式匹配小數?
- 13. 爲什麼這個正則表達式不匹配?
- 14. 爲什麼這個scala正則表達式匹配失敗?
- 15. 爲什麼這個正則表達式無法匹配?
- 16. 爲什麼這個正則表達式匹配?
- 17. 這個正則表達式爲什麼不匹配?
- 18. 爲什麼在.htaccess中這個正則表達式不匹配?
- 19. 爲什麼在這個正則表達式中不匹配?
- 20. 爲什麼在這個正則表達式中匹配空行?
- 21. 這個正則表達式匹配什麼?
- 22. 什麼正則表達式匹配這個字符串?
- 23. 爲什麼在perl中這個正則表達式不匹配
- 24. Perl - 爲什麼這個正則表達式匹配?
- 25. 這兩個正則表達式匹配是什麼?
- 26. 爲什麼正則表達式匹配這個文本?
- 27. 這個正則表達式匹配URL有什麼問題?
- 28. 爲什麼這個正則表達式在Puppet中不匹配?
- 29. 爲什麼這個正則表達式匹配?
- 30. 爲什麼這個正則表達式不匹配?
這當然意味着如果''''是被匹配的字符串的第一個字符,它會中斷。 – Nemo
感謝BoltClock。我基本上想看看我的字符串是否有[一些文字]。 – hari
你想匹配文本嗎?如果內部文本也有方括號會怎麼樣? – BoltClock