Regex 正则表达式以递归方式捕获命令

Regex 正则表达式以递归方式捕获命令,regex,Regex,我想用动态组匹配捕获我的命令… 我不熟悉正则表达式,但它可能需要一个递归组。不过,我还是不懂语法 some command content;some other command;another one 我的组可以是之间的任意字符 下面是我的代码尝试,但它只适用于前两组: (.+)[;]*(.*) 您可能想得太多了:[^;]+将为您提供分号之间字符串的所有部分。不需要递归 测试它。试着用这个 (.+);* 或 我的做法是: const text = 'some command content;

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

some command content;some other command;another one
我的组可以是
之间的任意字符

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

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

您可能想得太多了:
[^;]+
将为您提供分号之间字符串的所有部分。不需要递归

测试它。

试着用这个 (.+);*


我的做法是:

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

const regex = '/[\s\S]*;/gi'
console.log(text.match(regex))
产出将是: ['一些命令内容;一些其他命令;另一个;']

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


;->符号“;”如果你使用的是编程语言,你可能会在分号上分割你的字符串。C++,这有点让人讨厌。这会捕获组中的整个字符串,以获得C++中的所有匹配。
const text = 'some command content;some other command; another one;'

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