我想要一个正则表达式,它会I
从字符串中找到
但不管I
什么时候ARTICLE I
来或ARTICLE III
来
我做了正则表达式,但它计算出现时ARTICLE I
出现
(?:(^I[ ]|[ ]I[, ]|[ ]I$|(!ARTICLE[ ]I+$)))
除此之外,它在所有情况下都能很好地工作,即使ARTICLE III
是
您可以使用负面的lookbehind :((?<!ARTICLE )(\bI+\b)
不确定您到底想捕捉什么,但这应该可以帮助您入门。)
我猜后面的ARTICLE
标记是罗马数字。所以这是我的解决方案:
String s = "KSLJFI ARTICLE III SPIOEWF ARTICLE I ASDKJHJK OSDIF ARTICLE IV SKDJFHJSOIFPOEIF";
String temp = s.replaceAll("ARTICLE\\s+\\b[IVXLCDM]+\\b", "");
您可以匹配I
临时字符串中的任何内容,而不必担心它会匹配I
inARTICLE
或I
in 罗马数字。
public static void main(String args[]) {
String s="ARTICLE II";
String[] ss=s.split("(\\s+)I+");
for(int i=0;i<ss.length;i++) {
System.out.println(ss[i]);
}
}