我正在尝试解决是否有办法检查以确保我检查的字符串遵循结构。
例如:String s = "abcd, afsfsfs, abcdef, 90> 20, abeds"
需要确认有', '
后跟', '
后跟', '
后跟'> '
,最后是', '
。字母和数字在分隔它们的字符之间的长度可能不同。
我对此有点困惑。任何帮助将不胜感激。
答案 0 :(得分:1)
如果您想要任意数量的字母,特殊字符之间的数字,您可以使用此正则表达式:
public static void main(String[] args) {
String s = "abcd, afsfsfs, abcdef, 90> 20, abeds";
boolean matches = s.matches("\\w+, \\w+, \\w+, \\d+> \\d+, \\w+");
System.out.println(matches);
}
答案 1 :(得分:0)
您可以将以下正则表达式模式与String#matches()
结合使用:
.*, .*, .*, .*>.*, .*
代码示例:
public static void main(String args[])
{
String s = "abcd, afsfsfs, abcdef, 90> 20, abeds";
if (s.matches(".*, .*, .*, .*>.*, .*")) {
System.out.println("match");
}
else {
System.out.println("no match");
}
}
在这里演示:
答案 2 :(得分:0)
尝试类似下面的内容.FYI,尚未测试。说明,[^,]+
..您说的是匹配,
以外的任何内容,然后匹配,
。第二种模式为[^>]+ >
匹配任何字符>
和匹配>
。
[]
字符类或字符集
^
内的 [ ]
表示否定字符类。 read more
^(?![\s]*$) [^,]+ , [^,]+ , [^,]+ , [^>]+ > [^,]+ $
start no empty 1st 2nd 3rd 4th end
答案 3 :(得分:0)
试试这个:
^\s*(?:\s*\w+\s*,\s*){3}\w+\s*>\s*\w+,(?!.*[,>]).*$
它将确保格式正是您想要的格式。并且没有进一步的,或者>签到其余的字符串。但如果你的意图是允许更多的重复,>在找到格式后的字符串中,您可以从正则表达式中删除最后一个部分,即(?!.*[,>])
,它变为:
^\s*(?:\s*\w+\s*,\s*){3}\w+\s*>\s*\w+,.*$