是否可以创建具有可变数量的组的正则表达式?
例如运行之后......
Pattern p = Pattern.compile("ab([cd])*ef");
Matcher m = p.matcher("abcddcef");
m.matches();
Run Code Online (Sandbox Code Playgroud)
...我想有类似的东西
m.group(1) = "c"m.group(2) = "d"m.group(3) = "d"m.group(4)= "c".(背景:我正在解析一些数据行,其中一个"字段"正在重复.我想避免matcher.find这些字段的循环.)
我有一系列遵循特定格式的分组值,并希望使用单个表达式将它们捕获到组中.例如,我已经-group1 -group2 -group3尝试使用类似的东西.(-[\s\S]{1,}?) 这基本上允许我将整个字符串捕获到一个组中,但我希望能够分别反向引用每个值.我认为这?将迫使它非贪婪,因此,将模式匹配分成三个独立的组(例如).现在我只是重复参考,(-[\s\S]*?)但似乎应该有一个更优雅的表达.
谢谢!
我有以下正则表达式:
"(.+?)",.+?},\s.+?:\s
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以重复此正则表达式,因此我不需要像这样多次编写它:
"(.+?)",.+?},\s.+?:\s"(.+?)",.+?},\s.+?:\s"(.+?)",.+?},\s.+?:\s
Run Code Online (Sandbox Code Playgroud)