我遇到了将双反斜杠模式与preg_match函数匹配的问题。我理解为了字面上匹配反斜杠,你需要使用4(\\\\
)来匹配单个斜杠。我假设为了匹配一个文字的双斜线,即\\t
将是(\\\\\\\\t
)?
虽然我的字符串中似乎没有识别出这种模式?
这是我到目前为止所得到的......
preg_match("/\"&?$string:?(\\\\\\\\t)?\".{1,7}$lang=\"&?(.*?):?\"/smi",$cont,$matches);
进一步解释:
我需要它来匹配以下内容......
"Unlock\\t Automatically ar="فتح\\t تحديث"
"&Unlock Automatically ar="فتح\\t تحديث"
"&Unlock: Automatically ar="فتح\\t تحديث"
"&Unlock:Something\\t Automatically ar="فتح\\t تحديث"
它正确匹配带符号和冒号的字符串,但不匹配斜杠?
每个人都有什么想法?
答案 0 :(得分:0)
一个反斜杠'\'
用于转义下一个符号。因此,要捕获单个反斜杠,您需要'\\'
。要获得双倍,您需要'\\\\'
。
preg_match('/(\\\\)/i', 'فتح\\t تحديث', $result);
$result = Array
(
[0] => \\
[1] => \\
)
你也有一个'在那里,由于不同的原因,它在字符串中自行逃逸。所以要抓住一个人:
preg_match('/(\\\\t)/i', 'فتح\\t تحديث', $result);
$result = Array
(
[0] => \\t
[1] => \\t
)
应该足以让你前进。如果您需要任何进一步的帮助,请与我们联系。
P.S。 这是一个用PHP测试RegEx的优秀工具(PCRE RegEx) - http://regex.larsolavtorvik.com/