我正在尝试捕获以下单词,数字:
stxt:usa,city:14
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令捕获美国和14国:
stxt:(.*?),city:(\d.*)$
Run Code Online (Sandbox Code Playgroud)
但是,当文本是
stxt:usa
Run Code Online (Sandbox Code Playgroud)
正则表达式不起作用。我尝试使用| 但它没有用。
stxt:(.*?),|city:(\d.*)$
Run Code Online (Sandbox Code Playgroud)
您可以使用
(stxt|city):([^,]+)
Run Code Online (Sandbox Code Playgroud)
参见regex演示(请注意,\n仅出于演示目的而添加了该标签,您在现实生活中不需要它)。
图案细节:
(stxt|city)-无论是stxt或city 子(您可以添加\b前,(仅匹配整个单词)(第1组): -冒号([^,]+) -逗号以外的1个或多个字符(第2组)。String s = "stxt:usa,city:14";
Pattern pattern = Pattern.compile("(stxt|city):([^,]+)");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8204 次 |
| 最近记录: |