我的示例代碼正則表達式表達:的Java:對lastindexOf
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str[] = {"A","B","C"};
String s = "TEST FOR A STRING CONSTANT B. END.";
int retIndex = -1;
for (int i = 0, len = str.length; i < len; i++){
//length-1 is because, we should not check the empty space unicode(\u0021)
int index = s.lastIndexOf(str[i]);
if(index>retIndex){
retIndex = index;
}
}
System.out.println("RETINDEX"+retIndex);
Pattern pattern = Pattern.compile("A|B|C");
Matcher m = pattern.matcher(s);
while(m.find()){
retIndex = m.start();
System.out.println(m.group()+" : "+m.end()+" : "+m.start());
}
System.out.println("REGEX RETINDEX"+retIndex);
}
}
而且我得到的輸出:
RETINDEX27
A : 10 : 9
C : 19 : 18
A : 24 : 23
B : 28 : 27
REGEX RETINDEX27
我只希望最大輸出指數。無需執行其他三個循環。如何爲我的需要改變上面的一個?確切地說lastindex與正則表達式匹配。
.*(A|B|C)
鑑於您的測試字符串.*
會匹配一切到:
感謝
什麼是您預期的輸出? –