Java 基于格式筛选字符串
我有一个字符串列表,我想根据模式parta-partb-partc或parta-partb-no-partc将它们过滤掉。no可以是任何正整数,而字符串的其他部分是固定的Java 基于格式筛选字符串,java,regex,Java,Regex,我有一个字符串列表,我想根据模式parta-partb-partc或parta-partb-no-partc将它们过滤掉。no可以是任何正整数,而字符串的其他部分是固定的 For example parta-partb-partc parta-partb-1-partc parta-partb-1xyz-partc parta-partb-123-partc parta-partb-abc-partc 通过正则表达式筛选后,我的列表应该是 parta-partb-partc parta-pa
For example
parta-partb-partc
parta-partb-1-partc
parta-partb-1xyz-partc
parta-partb-123-partc
parta-partb-abc-partc
通过正则表达式筛选后,我的列表应该是
parta-partb-partc
parta-partb-1-partc
parta-partb-123-partc
我的问题是如何编写一个结合这两个条件的正则表达式?使用String#使用以下正则表达式模式匹配:
parta-partb-(?:\d+-)?partc
示例脚本:
String input = "parta-partb-1-partc";
if (input.matches("parta-partb-(?:\\d+-)?partc")) {
System.out.println("MATCH");
}
请注意,默认情况下,String#matches
会将模式应用于整个输入字符串,因此不需要起始/结束锚定。我不确定如何编写正则表达式来组合这两个条件。感谢您的回答。但是,它似乎与字符串parta partb partc不匹配。input.matches中的“\”也需要转义吗?@dividedbyzero您是对的,我已经更新了我的答案,谢谢。