Php Preg Match查找字符串中精确单词的计数
我想找出字符串中的字数。我使用下面的正则表达式来做同样的事情Php Preg Match查找字符串中精确单词的计数,php,regex,Php,Regex,我想找出字符串中的字数。我使用下面的正则表达式来做同样的事情 $count_keys = preg_match_all('/\bs.c.\b/', $str); 这里$str是一个字符串,我们需要从中找到单词s.c的出现次数,但是我得到了一个错误的结果,如果它们是单词#ssc或#sssc,它们也会被计算在内。请指导我在哪里出错,或者请提供正确的正则表达式代码以执行相同操作。尝试以下操作: $count_keys = preg_match_all('/\bs.c.\b/', $str); $s
$count_keys = preg_match_all('/\bs.c.\b/', $str);
这里$str是一个字符串,我们需要从中找到单词s.c的出现次数,但是我得到了一个错误的结果,如果它们是单词#ssc或#sssc,它们也会被计算在内。请指导我在哪里出错,或者请提供正确的正则表达式代码以执行相同操作。尝试以下操作:
$count_keys = preg_match_all('/\bs.c.\b/', $str);
$str = 'this is a s.c good to check s.c ';
echo $count_keys = preg_match_all('/\bs\.c/', $str);
输出:
$str = 'this is a s.c good to check s.c ';
echo $count_keys = preg_match_all('/\bs\.c/', $str);
二,
试试这个:
$str = 'this is a s.c good to check s.c ';
echo $count_keys = preg_match_all('/\bs\.c/', $str);
输出:
$str = 'this is a s.c good to check s.c ';
echo $count_keys = preg_match_all('/\bs\.c/', $str);
二,
使用substr_count()而不是preg_match_all
使用substr\u count()而不是preg\u match\u all
我认为问题在于正则表达式。如果要查找“s.c”事件,请尝试以下操作:
$count_keys = preg_match_all('/\bs\.c\b/', $str);
$count_keys = preg_match_all('/\bs\.c\.\b/', $str);
“.”之前缺少“\”,这导致了问题,因为“.”匹配正则表达式中的任何字符(换行除外)
但是,如果您正在查找“s.c.”的出现,请尝试以下操作:
$count_keys = preg_match_all('/\bs\.c\b/', $str);
$count_keys = preg_match_all('/\bs\.c\.\b/', $str);
我相信问题在于你的正则表达式。如果要查找“s.c”事件,请尝试以下操作:
$count_keys = preg_match_all('/\bs\.c\b/', $str);
$count_keys = preg_match_all('/\bs\.c\.\b/', $str);
“.”之前缺少“\”,这导致了问题,因为“.”匹配正则表达式中的任何字符(换行除外)
但是,如果您正在查找“s.c.”的出现,请尝试以下操作:
$count_keys = preg_match_all('/\bs\.c\b/', $str);
$count_keys = preg_match_all('/\bs\.c\.\b/', $str);
转义
为s\.c
…在PHPs\.c
中,仅使用(\bs\.c)
。您正在计算s.c.
或s.c
?不清楚:在代码中,您的模式在s.c
之后有一个
,但是,“s.c”一词的出现如下。@FrayneKonok:那么为什么正则表达式\bs.c.\b
作为s\.c
…在PHPs\\.c
中只使用(\bs\.c)
。您正在计算s.c.
或s.c
?不清楚:在代码中,您的模式在s.c
之后有一个/code>,但是,单词s.c的出现如下。@FrayneKonok:那么为什么正则表达式\bs.c.\b
?唯一的问题是我们不知道OP是搜索s.c.
还是s.c
@WiktorStribiżew,他提到:需要找到单词s.c
的出现次数,但OP regex在c
后包含一个点,这是可疑的。唯一的问题是我们不知道OP是否搜索s.c.
或s.c
@WiktorStribiżew,他提到:需要找到单词s.c
的出现次数,但是OP regex在c
之后包含一个点-这是可疑的。非常感谢Frayne Konok这个答案并不能完全解释OP正则表达式的错误。此外,这个正则表达式将匹配“s.cc”、“s.cs”、“s.cssc”等。非常感谢Frayne Konok。这个答案并不能完全解释OP正则表达式的错误。此外,此正则表达式将匹配“s.cc”、“s.cs”、“s.cssc”等。