Javascript 提取与特定模式匹配的所有值
我有一个输入字符串Javascript 提取与特定模式匹配的所有值,javascript,node.js,regex,Javascript,Node.js,Regex,我有一个输入字符串 var input = 'J1,J2, J3'; 我使用以下模式来提取组值 var regex = /(,? ?(?<JOUR>J[0-9]+)+)/ match.groups只包含一个组。如何从输入字符串中获取所有组J1、J2和J3?您可以使用字符串获取组 input.match(/J[0-9]+/g) var输入='J1,J2,J3'; console.log(input.match(/J[0-9]+/gi))匹配大写字母J,然后匹配任意数量的数字:
var input = 'J1,J2, J3';
我使用以下模式来提取组值
var regex = /(,? ?(?<JOUR>J[0-9]+)+)/
match.groups
只包含一个组。如何从输入字符串中获取所有组J1、J2和J3?您可以使用字符串获取组
input.match(/J[0-9]+/g)
var输入='J1,J2,J3';
console.log(input.match(/J[0-9]+/gi))
匹配大写字母J,然后匹配任意数量的数字:
var输入='J1,J2,J3';
var regex=/J[0-9]+/g;
console.log(input.match(regex))代码>您可以考虑字符串的开头和带有可选空格的逗号,并删除外部组以仅使用1个捕获组。为了防止数字成为较大单词的一部分,可以添加单词边界\b
请注意,您可以在)+
之后省略量词+
,因为这将重复该组,并仅给出上一次迭代的值
(?:^|[,-] ?)(?<JOUR>J[0-9]+)\b
const输入='J1、J2、J3、J10';
常量regexJfollowOneDigit=/(J\d{1}(?!\d))/g
常量regexJfollowOneOrMoreDigit=/(J\d+)/g
console.log(input.match(regexJfollowOneDigit))
控制台。日志(输入。匹配(ReExjJuxOnEndoReMeRigIt))< /代码>你认为这里是什么组?为什么不使用简单的输入。拆分(',')
?请使用匹配exec@connexo我有更多的操作员和部门。我只是在这里添加了一个示例。我的输入很复杂,如“J1、J2、J3-J5、J7”等。您可以使用input.match(/J[0-9]+/gi)
仅获取groups@JagsSparrow它能用,谢谢。请将其作为答案发布,我将接受这只匹配一个数字(“J10”将导致“J1”),我认为预期结果是,J+一个数字。现在我将更新帖子,使其与J之后的多个数字相匹配。
(?:^|[,-] ?)(?<JOUR>J[0-9]+)\b