0

我想要一个正则表达式,它会I从字符串中找到

但不管I什么时候ARTICLE I来或ARTICLE III

我做了正则表达式,但它计算出现时ARTICLE I出现

(?:(^I[ ]|[ ]I[, ]|[ ]I$|(!ARTICLE[ ]I+$)))

除此之外,它在所有情况下都能很好地工作,即使ARTICLE III

4

3 回答 3

1

您可以使用负面的lookbehind :((?<!ARTICLE )(\bI+\b)不确定您到底想捕捉什么,但这应该可以帮助您入门。)

于 2012-06-13T09:56:46.277 回答
0

我猜后面的ARTICLE标记是罗马数字。所以这是我的解决方案:

String s = "KSLJFI ARTICLE III SPIOEWF ARTICLE I ASDKJHJK OSDIF ARTICLE IV SKDJFHJSOIFPOEIF";
String temp = s.replaceAll("ARTICLE\\s+\\b[IVXLCDM]+\\b", "");

您可以匹配I临时字符串中的任何内容,而不必担心它会匹配IinARTICLEIin 罗马数字。

于 2012-06-13T09:57:57.380 回答
0
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]);
    }
}
于 2012-06-13T09:58:20.550 回答