我正在尝试捕获以下单词,数字:
stxt:usa,city:14
我可以使用:
捕获美国和14stxt:(.*?),city:(\d.*)$
然而,当文字是;
stxt:usa
正则表达式不起作用。我尝试使用 | 来应用或调整,但它不起作用。
stxt:(.*?),|city:(\d.*)$
答案 0 :(得分:5)
您可以使用
(stxt|city):([^,]+)
请参阅regex demo(注意仅为了演示而添加的\n
,在现实生活中不需要它。)
模式详情:
(stxt|city)
- stxt
或city
子字符串(您可以在\b
之前添加(
以仅匹配整个字词)(第1组) :
- 冒号([^,]+)
- 除逗号(第2组)以外的1个或多个字符。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));
}
答案 1 :(得分:0)
查看您的字符串,您还可以在冒号后找到单词/数字。
:(\w+)