java pattern 如何匹配用逗号分隔的很复杂的表达式?
开始我做的是匹配aa:bb,cc,dd:e...这种就是多个项用逗号隔开,每个项可以用冒号链接一个附加项我写的表达式是\\w+(:\\w+)?(,\\w+(:\\w+)?...
开始我做的是匹配 aa:bb,cc,dd:e ...
这种
就是多个项用逗号隔开,每个项可以用冒号链接一个附加项
我写的表达式是
\\w+(:\\w+)?(,\\w+(:\\w+)?)*
\\w+(:\\w+)? 就是用来匹配逗号分开的每个项的
我有个疑惑,假如每个项的内容非常复杂,比如匹配某个项的正则表达式是xxxxxxxxxxxxxxxxxxxxxxxxxx
那么我上面的规则就要改成
xxxxxxxxxxxxxxxxxxxxxxxxxx(,xxxxxxxxxxxxxxxxxxxxxxxxxx)*
感觉很乱很麻烦
有没有精简的方法表示 用逗号分隔开的若干个 项目?能不能不让xxxxxxxxxxxxxxxxxxxxxxxxxx出现两次?
额,我没写清楚,其实是一个项为 xx 或者 xx:xx ,多个项之间用逗号隔开为一组,多个组用分号隔开,所以表达式才那么复杂。
假如\\w+(:\\w+ 用 xx表示,我的表达式就是
xx)?(,xx)?)*(;xx)?(,xx)?)*)*
xx重复了四次,如果多个规则:用-分隔开每个项,那就要写成
xx)?(,xx)?)*(;xx)?(,xx)?)*)*(-xx)?(,xx)?)*(;xx)?(,xx)?)*)*)*
那就要重复八次,那就太复杂了…… 展开
这种
就是多个项用逗号隔开,每个项可以用冒号链接一个附加项
我写的表达式是
\\w+(:\\w+)?(,\\w+(:\\w+)?)*
\\w+(:\\w+)? 就是用来匹配逗号分开的每个项的
我有个疑惑,假如每个项的内容非常复杂,比如匹配某个项的正则表达式是xxxxxxxxxxxxxxxxxxxxxxxxxx
那么我上面的规则就要改成
xxxxxxxxxxxxxxxxxxxxxxxxxx(,xxxxxxxxxxxxxxxxxxxxxxxxxx)*
感觉很乱很麻烦
有没有精简的方法表示 用逗号分隔开的若干个 项目?能不能不让xxxxxxxxxxxxxxxxxxxxxxxxxx出现两次?
额,我没写清楚,其实是一个项为 xx 或者 xx:xx ,多个项之间用逗号隔开为一组,多个组用分号隔开,所以表达式才那么复杂。
假如\\w+(:\\w+ 用 xx表示,我的表达式就是
xx)?(,xx)?)*(;xx)?(,xx)?)*)*
xx重复了四次,如果多个规则:用-分隔开每个项,那就要写成
xx)?(,xx)?)*(;xx)?(,xx)?)*)*(-xx)?(,xx)?)*(;xx)?(,xx)?)*)*)*
那就要重复八次,那就太复杂了…… 展开
展开全部
按照你的要求匹配aa:bb,cc,dd:e简化的Java正则表达式: (:?\\w+,?)+
我给你个Java程序的例子,你可以参考一下.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class A {
public static void main(String[] args) {
String s="aa:bb,cc,dd:e";
String regex="(:?\\w+,?)+";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
if(m.matches()){
System.out.println(m.group());
}
}
}
运行结果:
aa:bb,cc,dd:e
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询