我需要創建一個正則表達式,其允許一個字符串,以包含任意數量的:爲什麼這個Java正則表達式不起作用?
- 字母數字字符
- 空間
- (
- )
- &
- 。
不允許其他字符。我以前RegexBuddy構建以下的正則表達式,它正常工作時,我內使用RegexBuddy測試:
\w* *\(*\)*&*\.*
然後我用使用RegexBuddy的「使用」功能將其轉換成Java代碼,但它似乎沒有正常工作用一個簡單的測試程序:
public class RegexTest
{
public static void main(String[] args)
{
String test = "(AT) & (T)."; // Should be valid
System.out.println("Test string matches: "
+ test.matches("\\w* *\\(*\\)*&*\\.*")); // Outputs false
}
}
- 我必須承認,我有一點盲點的,當涉及到正則表達式。任何人都可以解釋爲什麼它不起作用嗎?
好,但你應該提到,這允許空字符串,這可能不是他的意圖。 – 2009-04-22 16:06:15
沒關係,只有當字符串不爲空時纔會進行正則表達式測試。 – 2009-04-22 16:17:49
好吧,我擴大了答案,包括一些其他的選擇,並解釋它如何運作一點。 – Illandril 2009-04-22 16:18:54