php - 使用 preg_split 拆分正则表达式
问题描述
您好,我正在经历一个糟糕的时刻,试图找到正确的正则表达式。
$stringSplit = "+foo a -ba24+Sample3";
$vectorsPlus = preg_split('/[+*]/',$stringSplit ,-1,PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$vectorsMinus = preg_split('/[-*]/',$stringSplit ,-1,PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
我的目标是让 2 个不同的数组按符号分组,例如:
$vectorsPlus [0] = '+foo';
$vectorsPlus [1] = '+Sample3';
$vectorsMinus [0] = '-ba24';
我会感谢任何帮助如何用正则表达式魔法解决这个问题。
解决方案
您可以匹配这些值,而不是使用拆分。
请注意,[+*]
and[-*]
都匹配一个*
char 并且不在示例数据中。
您可以匹配 a+
或 a ,-
然后使用否定字符类匹配相反的不包括空白字符。
$stringSplit = "+foo a -ba24+Sample3";
preg_match_all("/\+[^-+\s]+/", $stringSplit, $matchesPlus);
print_r($matchesPlus[0]);
preg_match_all("/-[^-+\s]+/", $stringSplit, $matchesMinus);
print_r($matchesMinus[0]);
输出
Array
(
[0] => +foo
[1] => +Sample3
)
Array
(
[0] => -ba24
)
看一个php 演示
推荐阅读
- java - 如何在android中的三个活动之间传递TextView值?
- vue.js - 为什么我无法安装 npm stripe checkout?
- flutter - 显示模拟器
- java - 为什么在遍历列表时通过迭代器删除项目时会引发异常?
- amazon-web-services - 限制用户从 AWS EC2 实例访问网站
- database - 将 SELECT 授予整个架构上的角色;SYBASE
- python - Python删除文件
- r - GGPubr 与 R-Boxplot 显示不同的极值
- html - 在其他 div 旁边的 html 和 css 上添加 div
- spring-boot - 如何在 Webclient 中使用 Patch 方法?