我们说我的字符串是这样的:
Village_name(315|431 K64)
我想要做的是当我将其粘贴到“说”文本框中,然后点击按钮时,我将留下的只有315|431
。
有没有办法做到这一点?
答案 0 :(得分:2)
使用以下正则表达式,然后将匹配项替换为let inline sumMyList myList = List.sum myList
。
\1
它捕获(\d+\|\d+)|.
部分并匹配所有剩余的字符。将所有匹配的字符替换为number|number
只会为您提供\1
部分。
在php中,您也可以使用它。
number|number
匹配(?:\d+\|\d+)(*SKIP)(*F)|.
正则表达式的子字符串将首先匹配,而后面的\d+\|\d+
使正则表达式失败。现在,在管道符号匹配除(*SKIP)(*F)
之外的所有字符之后,.
,因为我们已经跳过该部分。
答案 1 :(得分:2)
我知道这个问题已得到解答,答案已被接受。但我仍然想建议这个答案,因为你真的不需要使用PHP来实现你的要求。只需使用Javascript。足够了:
var str = 'Village_name(315|431 K64)';
var pattern = /\((\w+\|\w+) /;
var res = str.match(pattern);
document.write(res[1]);
答案 2 :(得分:1)
请试试这个: -
<?php
$str = 'Village_name(315|431 K64)';
preg_match_all('/(?:\d+\|\d+)/', $str, $matches);
echo "<pre/>";print_r($matches);//print in array format completly
$i=0;
foreach($matches as $match){ //iteration through one foreach as you asked
echo $match[$i];
$i++;
}
?>
输出: - http://prntscr.com/74ddg9
注意: - 爆炸可以进行一些调整,但如果格式只是你给出的那样。那就去preg_match_all
。这是最好的。