Javascript 匹配分隔子字符串的正则表达式

Javascript 匹配分隔子字符串的正则表达式,javascript,regex,Javascript,Regex,我有一根类似这样的绳子 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(一些数字):文本 什么是regex?如果这些分号总是在那里,您可以使用如下内容: var re = /L[0-9]+:[^;]+/g; var test = 'Hello you have multip

我有一根类似这样的绳子

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(一些数字):文本


什么是regex?

如果这些分号总是在那里,您可以使用如下内容:

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
    标志使匹配全局化,即不只是查找第一个匹配并停止

我还没有测试过这个,但它应该可以工作

/(L\d:[a-zA-Z0-9\s]+;)/
正则表达式是:

/L\d+:[^;]*/g
意思是,以
L
开头,后跟一个或多个数字的序列(
\d+
),
,以及不包括
的零个或多个字符的序列
[^;]*
)。结尾的
g
表示“全局”,并使正则表达式应用于多个事件

与匹配一起使用:

var parts = test.match(/L\d+:[^;]*/g);

你试过什么?如果你不懂正则表达式,这里有一个很好的学习资源:请通读正则表达式的基础知识。