这是一个有趣的 - 我正在寻找一种 JavaScript 正则表达式解决方案来从字符串中提取不同的部分。非常感谢任何输入。
例子 -
";1XYZ123_UK;1;2.3;evt14=0.0|evt87=0.0,;1XYZ456_UK;4;5.6;evt14=0.0;fly;0;0;;;"
我试图从字符串中提取这些位而忽略其余部分-
“1XYZ123_UK;2;3;1XYZ456_UK;4;5.6;”</pre>基本上提取以 1XYZ 开头的任何内容,直到遇到“evt”。
这是一个有趣的 - 我正在寻找一种 JavaScript 正则表达式解决方案来从字符串中提取不同的部分。非常感谢任何输入。
例子 -
";1XYZ123_UK;1;2.3;evt14=0.0|evt87=0.0,;1XYZ456_UK;4;5.6;evt14=0.0;fly;0;0;;;"
我试图从字符串中提取这些位而忽略其余部分-
“1XYZ123_UK;2;3;1XYZ456_UK;4;5.6;”</pre>基本上提取以 1XYZ 开头的任何内容,直到遇到“evt”。
var s= ";1XYZ123_UK;1;2.3;evt14=0.0|evt87=0.0,;1XYZ456_UK;4;5.6;evt14=0.0"
s = s.replace(/(evt.+?(?:\||;|$))/g, "");
console.log(s) // ";1XYZ123_UK;1;2.3;1XYZ456_UK;4;5.6;"
var s = ';1XYZ123_UK;1;2e.3;evt14=0.0|evt87=0.0,;1XYZ456_UK;4;5.6;evt14=0.0';
var r = s.match(/1XYZ((?!evt).)*/g);
会给你你想要的字符串:
["1XYZ123_UK;1;2e.3;", "1XYZ456_UK;4;5.6;"]
使用组 ( (...)
) 捕获部分匹配字符串。成功匹配后,可以通过从String.match
or返回的数组访问捕获的子字符串Regex.exec
。
数组的第一个元素(索引 0)是整个匹配,下一个(索引 1)是第一个捕获。
例如。
var re = /1XY(.*)evt/
var result = theString.match(re)
那么,如果有匹配项(result
不为空),那么
result[0]
将是整个比赛(开始1XY
和结束evt
),而
result[1]
将是这些字符串之间的文本。