0
我需要使用正則表達式驗證輸入字符串。使用正則表達式驗證Java字符串
的要求是:
輸入
不得與
%
開始,_
不能包含
&
,#
,>
,<
可以是空
我已經成功地使用了[^%_#&<>][^#&<>]*|^$
。
有沒有更好的方法來解決這個問題?
我需要使用正則表達式驗證輸入字符串。使用正則表達式驗證Java字符串
的要求是:
輸入
不得與%
開始,_
不能包含&
,#
,>
,<
可以是空
我已經成功地使用了[^%_#&<>][^#&<>]*|^$
。
有沒有更好的方法來解決這個問題?
你的正則表達式是錯誤的,你也應該放在第一方案^
和$
約束:
^[^%_#&<>][^#&<>]*|$
這是因爲第一種情況可以在子應用。
你定義只是指出正則表達式:一個空字符串,或者至少有一個字符的字符串,是不是%
,_
,#
,...
它認爲所提出的正則表達式是不夠好。一些(可能不是java)正則表達式庫提供了額外的功能來聲明該字符串不應包含某個字符。但由於正則表達式並不那麼複雜,所以不會有太大的幫助。
您可以使用環視以避免重複某些字符,但我認爲您當前的解決方案足夠優雅。你不滿意嗎? – Biffen 2015-02-09 11:25:16
定義*更好*。 – m0skit0 2015-02-09 11:25:46
你的正則表達式匹配'%a'和'a#' – user3409662 2015-02-09 11:32:50