我有字符串的一部分。当我添加一些符号时,我需要检查它是否等于另一个字符串。但是,我对定系数(我相信)不允许进行比赛。
我的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
我的目标是将"狗"与" {dog [&lt;] n}"([]和{}是分界符)。为了弥补这一点,我将定界符粘贴到字符串的开始和结尾。preg_match接受它,但不匹配两个。
解决方案是什么?我找不到或想到解决方案。非常感谢您的帮助。
if (preg_match("{" . $words[$counter_words] . "\[<\]N}", $corpus[$counter_corpus]))
[
和]
在正则表达式中具有特殊的含义。如果您不想要特殊的含义,则需要逃脱它们,[
。但是由于这是在PHP字符串中,要获得字符,您必须输入
\
。
我有字符串的一部分。当我在上添加一些符号时,我需要检查它是否等于另一个字符串。
要检查字符串是否等于另一个,我们不需要preg_match()
;这样做是:
if ("{{$words[$counter_words]}[<]N}" == $corpus[$counter_corpus])
如果您使用preg_match()
,则必须注意Pcre Regex语法:
使用PCRE函数时,需要封闭图案 由分界符。定界符可以是任何非α数字, 非背斜线,非空格角色。
通常使用的定界符是前向斜线(/),…
添加的符号 {
和 }
在字符串的开始和末端被视为模式包含的分界符,而您意味着它们是模式的一部分。您必须添加实际的定系数:
if (preg_match("/{{$words[$counter_words]}[<]N}/", $corpus[$counter_corpus]))
也很感兴趣:
- 双引号
- 可变解析/复杂(卷曲)语法