我需要一些正则表达式来删除标题中指定的单词。我在正则表达式下面尝试过,但是没有用。我也想从给定的字符串中提取“#User#”-意思是从不包含任何空格的字符串中以“#”开头并以“#”结尾。
preg_match_all("~#(.*?)#~", “#User#,<br><br>Thanks#For providing” ,
$wordReplaceArr_tmp);
Result of above code is below:
Output: User#,<br><br>Thanks
Expected result: "#User#"
答案 0 :(得分:1)
如果我说对了,您希望用户名(?)位于前两个#标签之间,并删除其他所有内容。您的正则表达式很贪婪,这意味着它捕获的内容超过了应有的程度。将标签添加到“不匹配”列表中,直到找到其他标签后,它才会捕获任何内容。
$str = '#User#,<br><br>Thanks#For providing';
preg_match_all('/#([^#]+)#/mis', $str, $matches);
print_r($matches);
此代码的结果如下:
Array
(
[0] => Array
(
[0] => #User#
)
[1] => Array
(
[0] => User
)
)
您现在可以使用$matches[1][0]