我只是寫一個正則表達式爲使用PHP函數preg_match
,包含以下部分:在正則表達式中應該轉義哪些文字字符?
[\w-.]
要匹配任何單詞字符,以及減號和點。雖然它似乎在preg_match中起作用,但我試圖將它放到名爲Reggy的實用程序中,並且它對「char類中的空範圍」抱怨。試驗和錯誤教導我說,這個問題是由逃逸的減號,把正則表達式爲
[\w\-.]
由於原來出現在PHP的工作解決了,我很奇怪,爲什麼我應該或不應該逃避減號,並且 - 因爲這個點也是一個PHP中有意義的字符 - 爲什麼我不需要逃避這個點。我使用的實用程序只是愚蠢的,它是用另一個正則表達式方言工作還是我的正則表達式真的不正確,我只是幸運的preg_match讓我擺脫它?
有什麼理由不使用'preg_quote'? – Okonomiyaki3000 2016-09-20 08:34:09
可能不是。但這不是我問這個問題的原因。我試圖學習一些關於正則表達式的新東西,只是使用'preg_quote'會產生完全相反的效果。 :)。我意識到我標記了這個PHP,但我正在尋找可能適用於任何PCRE實現的答案。 – 2016-09-22 22:17:28
我明白了。然後,我可能會建議:https://github.com/php/php-src/blob/a3ca6b09cdf1ed904d3e3a56878c1cf6b1a04d1b/ext/pcre/php_pcre.c – Okonomiyaki3000 2016-09-23 01:34:44