检测字符串开头的白色 space 或方括号以及 php 中字符串的特定子字符串
Detect white space or brackets at starting of string and particular substring from string in php
我想从主字符串中检测子字符串的出现,但子字符串可以从 space 或(开头的左括号或结尾的右括号)或。末尾的点
我想写一个正则表达式来检测所有 4 个条件并计算 php 中的出现次数
编辑 - 感谢 JE SUIS,我可以检查开始和结束条件,但它仅在 $mainspring = "php" 时有效,这不适用于“这是 php”。
它不会忽略 php.
之前的单词
有什么办法可以忽略所有匹配前和匹配后的字符串吗?
$mainString = "i love java but i want to learn php and this keyword ofphp should not be count because there is no space before php but this could be count (php)";
$keyword = "php";
$match =preg_match('/^[(\s]?'.$keywords.'[.)]?$/', $mainString);
var_dump($match);
我不知道如何为这种情况编写正则表达式
任何帮助将不胜感激
谢谢
这将完成工作:
preg_match('/^[(\s]$keyword[.)]$/', $mainString, $match);
其中:
/ : regex delimiter
^ : begin of string
[(\s] : an open parenthesis or a space
$keyword : the keyword to find
[.)] : a dot or a close parenthesis
$ : end of string
/ : regex delimiter
注意preg_match的结果是布尔值,匹配在第三个参数中。
根据评论编辑:
如果要匹配字符串中间的$keyword
,只需去掉锚点^
和$
:
preg_match('/[(\s]$keyword[.)]/', $mainString, $match);
如果前后有一些十六进制字符:
preg_match('/[0-9a-fA-F][(\s]$keyword[.)][0-9a-fA-F]/', $mainString, $match);
如果它们不是强制性的:
preg_match('/[0-9a-fA-F]?[(\s]$keyword[.)][0-9a-fA-F]?/', $mainString, $match);
我想从主字符串中检测子字符串的出现,但子字符串可以从 space 或(开头的左括号或结尾的右括号)或。末尾的点
我想写一个正则表达式来检测所有 4 个条件并计算 php 中的出现次数 编辑 - 感谢 JE SUIS,我可以检查开始和结束条件,但它仅在 $mainspring = "php" 时有效,这不适用于“这是 php”。 它不会忽略 php.
之前的单词有什么办法可以忽略所有匹配前和匹配后的字符串吗?
$mainString = "i love java but i want to learn php and this keyword ofphp should not be count because there is no space before php but this could be count (php)";
$keyword = "php";
$match =preg_match('/^[(\s]?'.$keywords.'[.)]?$/', $mainString);
var_dump($match);
我不知道如何为这种情况编写正则表达式 任何帮助将不胜感激
谢谢
这将完成工作:
preg_match('/^[(\s]$keyword[.)]$/', $mainString, $match);
其中:
/ : regex delimiter
^ : begin of string
[(\s] : an open parenthesis or a space
$keyword : the keyword to find
[.)] : a dot or a close parenthesis
$ : end of string
/ : regex delimiter
注意preg_match的结果是布尔值,匹配在第三个参数中。
根据评论编辑:
如果要匹配字符串中间的$keyword
,只需去掉锚点^
和$
:
preg_match('/[(\s]$keyword[.)]/', $mainString, $match);
如果前后有一些十六进制字符:
preg_match('/[0-9a-fA-F][(\s]$keyword[.)][0-9a-fA-F]/', $mainString, $match);
如果它们不是强制性的:
preg_match('/[0-9a-fA-F]?[(\s]$keyword[.)][0-9a-fA-F]?/', $mainString, $match);