我有一个字符串的一部分。当我添加几个符号时,我需要检查它是否会等于另一个字符串。但是,我使用分隔符(我相信)不允许进行匹配。
我的IF声明:
if (preg_match("{" . "$words[$counter_words]" . "[<]N}", "$corpus[$counter_corpus]"))
我的语料库:
{3(-)D[<]AN}
{dog[<]N}
{4(-)H(')er[<]N}
{4(-)H[<]A}
{A battery[<]h}
我的部分数组如下
dog
cat
3-D
plant
我的目标是匹配&#34; dog&#34;用&#34; {dog [&lt;] N}&#34; ([]和{}是分隔符)。为了弥补这一点,我将分隔符粘贴到字符串的开头和结尾。 Preg_match接受它,但两者不匹配。
这会是什么解决方案?我无法找到或想到一个解决方案。非常感谢您的帮助。
答案 0 :(得分:1)
if (preg_match("{" . $words[$counter_words] . "\\[<\\]N}", $corpus[$counter_corpus]))
[
和]
在正则表达式中具有特殊含义。如果你不想要你想要的特殊含义,\[
。但由于这是在PHP字符串中,要获得\
字符,您必须输入\\
。
答案 1 :(得分:0)
我有一个字符串的一部分。当我添加几个符号时,我需要检查它是否等于另一个字符串。
要检查字符串是否等于另一个字符串,我们不需要preg_match()
;这样做:
if ("{{$words[$counter_words]}[<]N}" == $corpus[$counter_corpus])
如果您使用preg_match()
,则必须注意PCRE regex syntax:
使用PCRE功能时,需要包含图案 通过分隔符。分隔符可以是任何非字母数字, 非反斜杠,非空白字符。
经常使用的分隔符是正斜杠( / ),...
在字符串的开头和结尾添加的符号 {
和}
被视为包含模式的分隔符,而您的意思是它们是模式的一部分。你必须添加实际的分隔符:
if (preg_match("/{{$words[$counter_words]}\[<]N}/", $corpus[$counter_corpus]))
也感兴趣: