需要正则表达式来获取字母和数字。以下示例:
input1 - CCG [50 %] output1 CCG, 50
input2 - CCG old [59.6%] output2 CCG old, 59.6
inout3 - NSG [65.43%] output3 NSG, 65.43
我正在使用函数字符串split。这会将字符串转换为长度为2的数组,这符合我的要求。
我的要求是在split()函数中传递正则表达式。
split("(?<=\\D)(?=\\d)")
任何帮助都将不胜感激。
答案 0 :(得分:0)
也许是这样的?
<?php
$string = 'CCG [50 %]
CCG old [59.6%]
NSG [65.43%]';
$pattern = '/(.+?)\s\[(\d+?)(\.?)(\d*?)(\s?)%\]/im';
$replacement = '${1}, ${2}${3}${4}';
echo preg_replace($pattern, $replacement, $string);
结果:
CCG, 50
CCG old, 59.6
NSG, 65.43
答案 1 :(得分:0)
您可能需要匹配要拆分的部分才能匹配:
\[(?=\d)
一个空格,并打开括号并声明后面的内容是数字|
?%]$
匹配可选空格,%
和行尾的结束括号作为使用拆分的替代方法,您可能会匹配要删除的内容并捕获要保留在第一个捕获组中的内容。
在替换中,您可以使用昏迷,然后使用空格,然后使用1组。
<强>匹配强>
<强>替换强>
, $1