我有以下字符串
52x10x20x30x40
字符串可以扩展但具有相同的模式,并且在其两侧将有其他字符串:例如
"Hello something 52x10x20x30x40 bla bla bla"
我想捕获所有2位数字。
我有以下正则表达式
Pattern.compile("(\\d\\d)([x]\\d\\d)+");
但是这个正则表达式我只得到以下几组:
1: 52
2: x40
答案 0 :(得分:4)
为什么不简单:
"52x10x20x30x40".split("x");
忘记提及双方都可以有其他字符串。
您可以搜索"\\d{2}(x\\d{2})+"
,并在匹配时使用split("x")
。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您只想捕获所有两位数字,可以使用此表达式:
(?<!\d)(\d\d)(?!\d)
通常,您只能获取重复捕获组匹配的最后一个子字符串。 (.NET正则表达式在这方面有所不同。)