Php 这个正则表达式实现了什么?
我看过这个Php 这个正则表达式实现了什么?,php,regex,preg-match,Php,Regex,Preg Match,我看过这个 preg_match("/.*" . $row['keyword'] . ".*/", $word, $matches); 该模式试图暗示什么?它意味着查找后面或前面有0个或更多字符(*)的术语,这些字符不是\n() 除非在其他地方执行,否则您应该将$row['keyword']用前缀($row['keyword'],'/')这意味着查找后面或前面有0个或更多字符(*)的术语,这些字符不是\n() 除非在其他地方执行,否则您应该使用preg_quote($row['keyword'
preg_match("/.*" . $row['keyword'] . ".*/", $word, $matches);
该模式试图暗示什么?它意味着查找后面或前面有0个或更多字符(
*
)的术语,这些字符不是\n
(
)
除非在其他地方执行,否则您应该将
$row['keyword']
用前缀($row['keyword'],'/')
这意味着查找后面或前面有0个或更多字符(*
)的术语,这些字符不是\n
(
)
除非在其他地方执行,否则您应该使用
preg_quote($row['keyword'],'/')将$row['keyword'].
包装为/
只是模式分隔符,*
表示“任何字符(除换行符外)重复0次或更多次”,因此它只是搜索$row中任何字符串的出现情况['keyword']
,在$word/
中,它只是一个模式分隔符,*
表示“任何字符(除换行符外)重复0次或多次”,因此它只需搜索$row['keyword']中任何字符串的出现处
,在$word
中,它试图找出$row['keyword']
是否包含在$word
中,调用preg_quote
到$row['keyword']
如果关键字包含元字符,如*
,/
,\
等它试图找出$row['keyword']
是否包含在$word
中,调用preg\u quote
到$row['keyword']
如果关键字包含元字符,如*
,/
,\
等说明:
/ # start of the regex
. # match anything (any character, etc - except for /n)
* # zero or more times
" . $row['keyword']. " # match the keyword
.* # same as above
/ # end of the regex
说明:
/ # start of the regex
. # match anything (any character, etc - except for /n)
* # zero or more times
" . $row['keyword']. " # match the keyword
.* # same as above
/ # end of the regex
请注意,$row['keyword']中的任何regex命令字符都将被计算。如果您只想查看关键字是否在字符串中,您可以执行strops($string,$row['keyword'])!==FALSE
请注意,$row['keyword']中的任何regex命令字符都将被计算。如果您只想查看关键字是否在字符串中,您可以执行strops($string,$row['keyword'])!==FALSE
这是有意义的。这个preg_quote
可以安全地与像umlaut这样的德语字符一起使用吗?@Defensor应该是这样的,因为它只会查找与元字符匹配的字符,它们的代码点都小于127
。谢谢。如果我愿意修改这个preg_match
,以匹配$word中的确切单词代码>效果如何?@Defensor用单词边界(\b
)将短语包装起来,例如,'/\b'.preg_quote($row['keyword'],'/'))“\b/”
。这是有道理的。这个preg_quote
可以安全地与像umlaut这样的德语字符一起使用吗?@Defensor应该是这样的,因为它只会查找与元字符匹配的字符,这些字符的代码点都小于127
。谢谢。如果我愿意修改这个preg_match
,以匹配$word中的确切单词ode>将如何?@Defensor用单词边界(\b
)来包装短语,例如'/\b'.preg_quote($row['keyword'],'/')。\b/'
。