Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这个正则表达式实现了什么?_Php_Regex_Preg Match - Fatal编程技术网

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/'