php – 使用正则表达式从字符串中提取数字和符号

我有一个包含文本,数字和符号的字符串.我试图从字符串中提取数字和符号,但成效有限.我没有得到整个数字和符号,而只是参与其中.我将在下面解释我的正则表达式,使其更清晰,更容易理解.

\d : any number
[+,-,*,/,0-9]+ : 1 or more of any +,-,*,/, or number
\d : any number

 码:

$string = "text 1+1-1*1/1= text";

$regex = "~\d[+,-,*,/,0-9]+\d~siU";
preg_match_all($regex, $string, $matches); 

echo $matches[0][0];

 预期成绩

1+1-1*1/1

 实际结果

1+1

最佳答案 删除U标志.这导致它在匹配中不合适.此外,您的角色列表中的字符之间不需要逗号. (你只需要1,如果你正在尝试匹配它.你需要逃脱 – 所以它不认为你试图制作一个范围

点赞