我有这个字符串:
远程:城市|维斯塔维亚山,阿拉巴马州,远程:城州|维斯塔维亚山,395b5231539390675a7abe0751fc4820,远程:城市|维斯塔维亚山,阿拉巴马州,远程:城州|维斯塔维亚山,395b5231539390675a7abe0751fc4 820
我想匹配并提取以逗号分隔的字符串。
结果应该是:
MATCH 1
'remote:City|Vestavia Hills,AL'
MATCH 2
'remote:Citystate|Vestavia Hills'
MATCH 3
'395b5231539390675a7abe0751fc4820'
MATCH 4
'remote:City|Vestavia Hills,AL'
MATCH 5
'remote:Citystate|Vestavia Hills'
MATCH 6
'395b5231539390675a7abe0751fc4820'
我有这个正则表达式:
(remote:[a-zA-Z]+\|[^\,]+|[a-f0-9]{32})
但是那些状态为“AL”(用逗号分隔)的城市分隔不正确。
可能的解决方案:
我正在考虑做这样的事情 - remote:[a-zA-Z]+\|.*
- 并在逗号上结束匹配,其后有 self (remote :[a-zA-Z]+\|.*
) 或 md5 哈希 ([a-f0-9]{32},?
)。
这是我的正则表达式测试器链接:
最佳答案
使用单个正则表达式,您可以执行以下操作;
var str = "remote:City|Vestavia Hills,AL,remote:Citystate|Vestavia Hills,395b5231539390675a7abe0751fc4820,remote:City|Vestavia Hills,AL,remote:Citystate|Vestavia Hills,395b5231539390675a7abe0751fc4820",
arr = str.match(/(r.+?|[\da-f]{32})(?=,?(remote|[\da-f]{32}|$))/g);
console.log(arr);
关于Javascript 正则表达式逗号分隔文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39676622/