2013-07-16 73 views
-2

我試圖匹配以下字符串中的「我的體重」。我使用Java的String類來進行正則表達式匹配:如何獲得此正則表達式以匹配我所需的輸入

String line = "MY WEIGHT:200"; 
String s = "^(MY WEIGHT)."; 
line.matches(s); 

但它總是返回false。然後我嘗試s="MY WEIGHT",但它也不起作用。這裏有什麼問題?

回答

1

兩個不匹配:.匹配字符,但line"MY WEIGHT"後4個字 - 你的意思是.*(至少爲0個字符)或.+(至少1個字符)?

+1

這是正確的。應該有'。*'。點「。」後面的星號*是否意味着匹配前一個元素零次或多次? – tonga

+0

@tonga不,它只是表示0個或更多的任意字符('。*'基本上匹配任何東西)。 – arshajii

+0

這就是爲什麼它讓我困惑。從正則表達式維基,它說明星'*'匹配前面的元素零次或多次。但是,當星號與點「。」一起使用時,它會改變其含義。 – tonga

1

字符串的.match必須匹配整個字符串與正則表達式,而不是一個子字符串。這就是爲什麼s="MY WEIGHT"也不起作用。

String s =「^(MY WEIGHT)。*」;

將匹配。如果您對自己的需求更具體,則構建更具體的正則表達式會更容易。

相關問題