我需要一個正則表達式模式,它將成功用於字符串,但不適用於字符串.*
。我發現這個棘手。我期望[^.]\\*
或[^\\.]\\*
或(?<!\\.)\\*
工作,但沒有一個這樣做。匹配星而不是星星
任何想法?
@Test
public void testTemp() {
String regex = "[^.][*]";
if ("s*".matches(regex)) {
if (".*".matches(regex)) {
System.out.println("Success");
} else {
// This exception gets thrown.
throw new RuntimeException("Wrongly matches dot star");
}
} else {
throw new RuntimeException("Does not match star");
}
}
請不要告訴我,我的用例是愚蠢的。我有一個完全合法的用例,它有點難以清晰地表達。我只想說,我並不困惑。
這將是最好的總是描述你的實際使用情況,以避免陷阱的[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-問題)。 –
好點。這很困難,但基本上我在一個文件中有一個巨大的正則表達式,我試圖匹配從某個服務器返回的JSON響應。我需要「。*」來忽略某些非確定性的部分。但'*'可能出現在服務器響應中。 –
請說明它應該匹配什麼類型的樣本,哪些不應該。如果你只是需要它匹配「s *」,只需使用「s \\ *」正則表達式:) –