字符串
T1 - X1(1), 7
T2 - C2(-9), -15
T3 - Y2(1), 3
T5 - C2(-1), 100
regexp用于preg_split
/[-,#\n#()]/
在上面的正则表达式中,它考虑的是臀部空间与数字前面的负数相同。
需要最终结果 在preg_split和trim空间之后的数组[" T1"," X1"," 1"," 7"," T2&# 34;," C2"" -9"" -15"" T3"" Y2&#34 ;, " 1"" 3"" T5"" C2"" -1"" 100"]
需要在regexp中进行哪些更改才能获得所需的最终结果?
答案 0 :(得分:1)
You should skip the negative numbers. This can be done with PCRE verbs:
-\d(*SKIP)(*FAIL)|\s*[-,#\n#()]\s*
PHP example:
$string = 'T1 - X1(1), 7
T2 - C2(-9), -15
T3 - Y2(1), 3
T5 - C2(-1), 100';
print_r(preg_split('/-\d(*SKIP)(*FAIL)|\s*[-,#\n#()]\s*/', $string, -1, PREG_SPLIT_NO_EMPTY));
答案 1 :(得分:0)
You could match either a whitespace character, a hyphen and a whitespace s-\s
character or |
match the characters you want to exclude [(),\s]
using a character class:
$data = <<<DATA
T1 - X1(1), 7
T2 - C2(-9), -15
T3 - Y2(1), 3
T5 - C2(-1), 100
DATA;
$result = preg_split("~\s-\s|[(),\s]~", $data, -1, PREG_SPLIT_NO_EMPTY);
print_r($result);