2017-04-04 88 views
0

有誰知道如何寫條件的正則表達式:「不允許點作爲最後一個字符」。 我正則表達式是:正則表達式,禁止點(。)作爲最後一個字符

"^[0-9A-Za-z!$'()+,-;[email protected]\\[\\]_`^]+$" 

我怎麼能覆蓋條件: Name.png允許VS名稱。(**爲forbbiden

+2

你確定你的模式匹配嗎?請注意,一個點與此模式匹配爲', - ;'範圍包括它。如果沒問題,你需要添加的是'$'前/後的'(?<!\\。)'。 –

+1

爲什麼你需要一個正則表達式呢?你可以使用'String.charAt(String.length() - 1).equals(「。」)' – px06

回答

1

我不明白你是否需要你的正則表達式的擴展或簡單的正則表達式可以解決你的問題「點不允許作爲最後一個字符」?對於第二個問題,一個解決辦法是:

.*(?<!\.)$ 

這應該對Java的工作,但還沒有爲JavaScript。

6

爲什麼你根本不使用String::endsWith

String str = "Name.png"; 
if (str.endsWith(".")) { 
    System.out.println("NOT CORRECT"); 
} else { 
    System.out.println("CORRECT"); 
} 
+1

我喜歡這個解決方案,但我認爲你的打印語句應該是OP的另一種方式。 – px06

+1

是@ px06我已經注意到了,謝謝 –

相關問題