我在java中创建一个正则表达式时遇到了一些麻烦,我想让它匹配字符串中只有;
且字符串中没有;;
的所有部分。
例如在字符串today;i;;drank water
中,今天之后的;
将匹配,;;
将不匹配。到目前为止,我已尝试使用正则表达式;{1}
来表示匹配,如果只有一个;
。
但它会保持匹配双;;
。同样适用于正则表达式;{1,2}
,它表示匹配一个;
但不匹配两个或更多;
。两个正则表达式都是贪婪类型。此外,我正在使用带有String.split(regular expression)
java函数的正则表达式。
任何人都可以帮助解决可能出现问题的情况,或者我对正则表达式形成的理解是否有点因为我的正则表达式无法正常工作?
另外值得注意的是,我从分割得到的输出就像today;i;;drank water
today
i
drank water
是分裂数组字符串中的空白时的第3个元素。
答案 0 :(得分:1)
您可以使用以下表达式:\b;\b
。有一个例子here。
String str = "today;i;;drank water";
String[] split = str.split("\\b;\\b");
for(String s : split)
System.out.println(s);
收率:
today
i;;drank water
答案 1 :(得分:1)