Regex 使用正则表达式解析字符串
我需要解析一个格式为的输入字符串Regex 使用正则表达式解析字符串,regex,typescript,regex-greedy,Regex,Typescript,Regex Greedy,我需要解析一个格式为的输入字符串 AB~11111、AB~22222、AB~33333、AB~44444 分成不同的字符串: AB~11111,AB~22222,AB~33333和AB~44444 这是我尝试的正则表达式: range = "([^~,\n]+~[^,]+,)?"; non_delimiter = "[^,\n;]+"; range_regex = new RegExp(this.range + this.non_delimiter, 'g'); 但不知何故,这个正则表达式只会
AB~11111、AB~22222、AB~33333、AB~44444
分成不同的字符串:
AB~11111
,AB~22222
,AB~33333
和AB~44444
这是我尝试的正则表达式:
range = "([^~,\n]+~[^,]+,)?";
non_delimiter = "[^,\n;]+";
range_regex = new RegExp(this.range + this.non_delimiter, 'g');
但不知何故,这个正则表达式只会将输入字符串解析为
AB~11111、AB~22222和AB~33333、AB~44444
而不是将输入字符串解析为单个字符串 您应该在,\s*
上使用正则表达式拆分:
var input=“AB~11111,AB~22222,AB~33333,AB~44444”;
var parts=input.split(/,\s*/);
控制台日志(部件)代码>您应该在,\s*
上使用正则表达式拆分:
var input=“AB~11111,AB~22222,AB~33333,AB~44444”;
var parts=input.split(/,\s*/);
控制台日志(部件)代码>这可能是缺少了船,但是从您的输入来看,类似于:
AB~\d+
[A-Z]{2}~\d+
这应该与上面的每个字符串匹配:。如果有变化(即,它可以是其他字母),那么可能类似于:
AB~\d+
[A-Z]{2}~\d+
或者不管它需要什么,但是使用否定字符类似乎是一种非常迂回的方法。如果是这样的话,你可以:
[^ ,]+
也许这是错过了机会,但从您的输入来看:
AB~\d+
[A-Z]{2}~\d+
这应该与上面的每个字符串匹配:。如果有变化(即,它可以是其他字母),那么可能类似于:
AB~\d+
[A-Z]{2}~\d+
或者不管它需要什么,但是使用否定字符类似乎是一种非常迂回的方法。如果是这样的话,你可以:
[^ ,]+
您使用的是什么编程语言?@TimBiegeleisen TypeScript您使用的是什么编程语言?@TimBiegeleisen TypeScript不幸的是,我不能这么做,因为它还需要确保输入字符串的格式为AB~11111。@Leila您应该单独检查格式,q.v.我的更新答案使用字符串test
来执行此操作。不幸的是,我不能这样做,因为它还需要确保输入字符串的格式为AB~11111。@Leila您应该单独检查格式,问:我的最新答案是使用字符串测试。如果总是有五位数字,你也可以将\d+
更改为\d{5}
。如果总是有五位数字,你也可以将\d+
更改为\d{5}
。