php - 如何使用正则表达式仅获取操作数
问题描述
我试图只提取操作数,即。+ - /
并*
从我的算术表达式。
例如:A + B
应该还给我+
我尝试使用以下几个正则表达式,但我总是得到一个包含 3 个元素的数组:
表达式#1:
print_r (var_dump(preg_split ( "/([\w\s]*[^\-\+\/\*])/", "A+B" )), TRUE);
输出:
array(3) {
[0] =>
string(0) ""
[1] =>
string(1) "+"
[2] =>
string(0) ""
}
表达式#2:
print_r (var_dump(preg_split ( "/(?!\+|\-|\*|\/)[\w\s]+/", "A+B" )), TRUE);
输出:
array(3) {
[0] =>
string(0) ""
[1] =>
string(1) "+"
[2] =>
string(0) ""
}
我只想要一个+
符号作为输出。
任何线索我做错了什么?
解决方案
正如 Wiktor 所说,您最好使用preg_match,但如果您真的想使用preg_split ,请使用该标志PREG_SPLIT_NO_EMPTY
并简化您的正则表达式:
print_r (var_dump(preg_split ( "/[\w\s]/", "A+B", -1, PREG_SPLIT_NO_EMPTY )), TRUE);
输出:
array(1) {
[0]=>
string(1) "+"
}
推荐阅读
- r - 设法在循环函数中访问字符和与该字符的字母/数字关联的变量
- vb.net - 如何滚动到 SpreadsheetGear WorkBookView 控件中的列?
- c# - 带有外部参数的Task.Run循环由循环改变
- python - 如何从模块中导入实例化对象
- gcloud - 如何在 Mac OS 终端(或通过 Gcloud Web UI?)中访问已完成的 gcloud ml 语音到文本操作的输出?
- javascript - 显示警报信息
- python - 如何在 Python 3 中使用组合的格式化字符串文字和三引号来修复代码?
- python-3.x - 将列表拆分为随机排序的子列表
- python - 当仅返回单个值时,如何在 for 循环中使用追加的多值列表?
- html - 将css文件链接到html文件