正则表达式递归捕获命令

时间:2018-04-29 12:12:25

标签: regex

我想用动态组匹配来捕获我的命令...
我不熟悉正则表达式,但它可能需要一个递归组。不过,我不懂语法。

some command content;some other command;another one

我的群组可以是;之间的任何字符。

这是我对代码的尝试,但它只适用于前两组:

(.+)[;]*(.*)

3 个答案:

答案 0 :(得分:0)

你可能会过度思考:[^;]+会在分号之间给你字符串的所有部分。不需要递归。

测试live on regex101.com

答案 1 :(得分:0)

尝试使用此功能     (+); *

(.+)(;*)(.*)

答案 2 :(得分:0)

我的方法就是这样:

const text = 'some command content;some other command; another one;'

const regex = '/[\s\S]*;/gi'
console.log(text.match(regex))

输出将是: ['一些命令内容;一些其他命令;另一个;' ]

[\ s | s] * - > \ s匹配空格(空格,制表符和新行)。 \是的              否定了。 (*)表示事件必须出现零次或多次。

- >符号';'必须包括在内。