我寫了非常複雜的正則表達式,並使用Rubular editor進行了測試,幾個小時後我意識到它在PHP中不起作用。有效的正則表達式在php中不起作用((\\ | \ | | | [^ \ | |))*?
這是較長的正則表達式的只是微不足道的一部分:
((\\\\|\\\|)|[^\\\|])*?
我有以下的條件下馬赫字符串。
- 字符串可能包含
|
字符只能轉義爲\|
。 - 字符串可能包含
\
字符只能轉義爲\\
。 - 字符串可能爲空。
這意味着像
test
test\\
test\|
t\\e\|s\|\|t\\\\\\\\\\
字符串是CORRECT和字符串等
test\
test|\
\
|
test\\\\|
是不正確
此外,Rubular接受[^\\\|]
和[^\|\\]
(相同)。 PHP不適用於[^\|\\]
。爲什麼?
這裏是我看不到的東西,因爲我認爲這兩個字符都已正確轉義,但PHP不同意我的看法。
我仍然在這個表達式新的東西,所以不要怪我的愚蠢。
在此先感謝!
這聽起來像你想使用一個原始字符串。傳遞'var_export($ yourRegexString,true);'是否有訣竅? – dangerChihuahua007 2012-03-02 00:37:21