我有一个像这样的字符串
var test = 'Hello you have multiple L2:Me here;L3:Me not here; and some other text...';
我想获得字符串数组
L2:Me here
L3:Me not here
格式为L(某个数字):text;
什么是正则表达式?
答案 0 :(得分:1)
如果那些分号总是在那里,你可以使用这样的东西:
var re = /L[0-9]+:[^;]+/g;
var test = 'Hello you have multiple L2:Me here;L3:Me not here; and some other text...';
var match = test.match(re);
console.log(match);
// match = ["L2:Me here", "L3:Me not here"]
说明:
L[0-9]+:
匹配L后跟任意数字序列,后跟冒号(即"L105:"
)[^;]+
匹配任何不是分号([^;]
部分)的字符至少一次(+
部分),只有在达到分号后才会停止g
标志使匹配成为全局,即不只是找到第一个匹配并停止答案 1 :(得分:1)
我没有对此进行测试,但它应该可以正常工作
/(L\d:[a-zA-Z0-9\s]+;)/
答案 2 :(得分:0)
正则表达式是:
/L\d+:[^;]*/g
含义,以L
开头,后跟一个或多个数字(\d+
),:
的序列,以及零个或多个字符的序列,不包括{ {1}}(;
)。最后的[^;]*
用于“全局”,并使正则表达式适用于多个出现。
与match:
一起使用g