[英]Find all special characters in a MySQL regexp
我想匹配以下正則表達式: \\[\\[\\.\\\\{0,}(.)?\\.\\]\\]
,所以:
[
然后是[
和一個.
,然后是可能的數字\\
(0或更大),然后是單個字符,然后是.
其次是兩個]
這是為了找到[[.g.]]
如g
, '[[\\克。]]'為g
,而且[[.\\\\g.]]
如g
。 我有以下代碼(例如):
preg_match_all( '/\[\[\.(.)?\.\]\]/', "[[.g.]]", $matches );
找到g
作為匹配項。 如果我想忽略轉義字符,可以將模式更改為\\[\\[\\.\\\\{0,}(.)?\\.\\]\\]
,所以:
preg_match_all( '/\[\[\.\\{0,}(.)?\.\]\]/', "[[.\\\\g.]]", $matches );
我希望g
回來,但我什么也沒得到。 regexp現在表示:兩個[
,后跟一個.
,任意數量的轉義字符,然后是我們要查找的字符,后跟.]]
。 我究竟做錯了什么?
您可能無法使用正則表達式進行匹配,因為兩個反斜杠表示一個(由於轉義),請嘗試此操作(兩個反斜杠可以轉義,所以總共有4個):
$re = '/\[\[\.\\\\{0,}(.)?\.\]\]/m';
$str = '[[.g.]]
[[.\\g.]]
[[.\\\\g.]]
[[.\\\\\\\\g.]]';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
現場演示在這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.