Preg_Match 精确单词并从字符串文本中输出单词
Preg_Match exact Word and Output the Word from String Text
如何输出不区分大小写的匹配词?
PHP代码:
if(preg_match("/(?i)(?<= |^)" . $Word . "(?= |$)/", $String)) {
// If Exact Word is Match Case Insensitive
}
例如我的字符串是:
你好,视频很有趣。
我想从字符串中获取“视频”,但是因为我的 PHP preg_match 不区分大小写,我正在寻找“视频”,所以我需要从字符串中获取输出“视频”字符串到.
另一个字符串示例:
你好,视频很有趣
从字符串中获取输出“ vIDeo ”。
另一个字符串示例:
你好,视频很有趣。
此字符串不需要输出“ vIDEOwas ”,因为它不匹配确切的词。
我需要这个脚本,这样我就可以在搜索后查看在字符串中找到确切单词的方式。
您可以将找到的匹配项替换为 $Word
,然后比较两个字符串
$String = 'Hello there, the Video was funny';
$Word = 'Video';
$s2 = preg_replace("/(?i)(?<= |^)" . $Word . "(?= |$)/", $Word, $String);
if ( $s2 === $String ) {
echo "found";
}else {
echo "NOT found";
}
另一个解决方案
$String = 'Hello there, the Video was funny';
$Word = 'Video';
$s = explode(' ',$String);
foreach($s as $w) {
if( $w === $Word) {
echo $w;
break;
}
}
您可以使用 preg_match()
的第三个参数来获取匹配;在您的情况下,最多会有一个匹配的模式:
$body = 'Hello there, the Video was funny';
$search = 'video';
if (preg_match('/\b' . preg_quote($search, '/') . '\b/i', $body, $matches)) {
print_r($matches[0]); // Video
}
对您的代码进行的一些其他更改:
- 如果您不知道搜索字词的来源,请始终使用
preg_quote()
。
- 我使用
/i
修饰符而不是 (?i)
- 我使用零宽度
\b
断言,而不是后视断言和前瞻断言。
如何输出不区分大小写的匹配词? PHP代码:
if(preg_match("/(?i)(?<= |^)" . $Word . "(?= |$)/", $String)) {
// If Exact Word is Match Case Insensitive
}
例如我的字符串是: 你好,视频很有趣。
我想从字符串中获取“视频”,但是因为我的 PHP preg_match 不区分大小写,我正在寻找“视频”,所以我需要从字符串中获取输出“视频”字符串到.
另一个字符串示例: 你好,视频很有趣 从字符串中获取输出“ vIDeo ”。
另一个字符串示例: 你好,视频很有趣。 此字符串不需要输出“ vIDEOwas ”,因为它不匹配确切的词。
我需要这个脚本,这样我就可以在搜索后查看在字符串中找到确切单词的方式。
您可以将找到的匹配项替换为 $Word
,然后比较两个字符串
$String = 'Hello there, the Video was funny';
$Word = 'Video';
$s2 = preg_replace("/(?i)(?<= |^)" . $Word . "(?= |$)/", $Word, $String);
if ( $s2 === $String ) {
echo "found";
}else {
echo "NOT found";
}
另一个解决方案
$String = 'Hello there, the Video was funny';
$Word = 'Video';
$s = explode(' ',$String);
foreach($s as $w) {
if( $w === $Word) {
echo $w;
break;
}
}
您可以使用 preg_match()
的第三个参数来获取匹配;在您的情况下,最多会有一个匹配的模式:
$body = 'Hello there, the Video was funny';
$search = 'video';
if (preg_match('/\b' . preg_quote($search, '/') . '\b/i', $body, $matches)) {
print_r($matches[0]); // Video
}
对您的代码进行的一些其他更改:
- 如果您不知道搜索字词的来源,请始终使用
preg_quote()
。 - 我使用
/i
修饰符而不是(?i)
- 我使用零宽度
\b
断言,而不是后视断言和前瞻断言。