Regex to split string into array of numbers and characters using PHP(使用PHP将字符串拆分为数字和字符数组的Regex)
本文介绍了使用PHP将字符串拆分为数字和字符数组的Regex的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个类似于以下模式的算术字符串。
a. 1+2+3
b. 2/1*100
c. 1+2+3/3*100
d. (1*2)/(3*4)*100
需要注意的是
1.字符串不会包含空格。
2.字符串将始终是数字、算术符号(+、-、*、/)和字符‘(’和‘)’的组合
我正在寻找PHP中的正则表达式,以便根据字符的类型拆分字符,并形成如下所示的单个字符串字符的数组。
(注意:我不能使用STR_Split,因为我希望不拆分大于10的数字。)
A.1+2+3
输出=>[
0 => '1'
1 => '+'
2 => '2'
3 => '+'
4 => '3'
]
2/1*100输出=>
[0 => '2'1 => '/'2 => '1'3 => '*'4 => '100']`
c.1+2+3/3*100
[0 => '1'1 => '+'2 => '2'3 => '+'4 => '3'5 => '/'6 => '3'7 => '*'8 => '100']`
d.(1*2)/(3*4)*100
[0 => '('1 => '1'2 => '*'3 => '2'4 => ')'5 => '/'6 => '('7 => '3'8 => '*'9 => '4'10 => ')'11 => '*'12 => '100']
提前谢谢您。
推荐答案
使用此正则表达式:
(?<=[()/*+-])(?=[0-9()])|(?<=[0-9()])(?=[()/*+-])
它将匹配数字或圆括号和运算符或圆括号之间的每个位置。
(?<=[()/*+-])(?=[0-9()])在左侧用括号或运算符匹配位置,在右侧用数字或括号匹配
(?<=[0-9()])(?=[()/*+-])相同,但左右颠倒。
演示here
这篇关于使用PHP将字符串拆分为数字和字符数组的Regex的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用PHP将字符串拆分为数字和字符数组的Regex
猜你喜欢
- PHP - if 语句中的倒序 2021-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- PHP foreach() 与数组中的数组? 2022-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
