String text = "ref=\"ar\" alias=\"as sa\" value=\"asa\"";
实际上我想获得ref和别名的双引号之间的所有数据的值。也构思了正则表达式。但我面临的问题是别名,它不匹配第一个双引号,而是最后一个。我只希望数据达到第一个双引号
String patternstr="(alias=\".*\")|(ref=\"[[\\w]]*\")";
String patternstr2Level="\".*\"";
在第一次匹配中,将获取两个参数,并且将在第二个匹配数据中获取引号
当前结果:
“AR”
“as sa”value =“asa”
必填结果:
“AR”
“as sa”
答案 0 :(得分:5)
你只需要让你的比赛更加懒散。我相信
String patternstr="(alias=\".*?\")|(ref=\".*?\")";
应该做的伎俩。使用.*?
代替.*
,匹配的那部分变得懒惰。换句话说,它将尝试匹配它找到的第一个双引号,而不是匹配尽可能多的东西,直到它到达最后的双引号。我在Python中进行了测试,效果很好。
答案 1 :(得分:0)
尝试String patternstr="(alias=\"[\\w\\s]*\")|(ref=\"[[\\w]]*\")";
答案 2 :(得分:0)