2012-01-23 10 views
1

英数字と1つの特殊文字のみを含むことができる文字列の検証を行います。私は(\\W).{1,1}(\\w+)で試しました。Java文字列の検証はRegexで1つの英数字に限定

しかし、それは私が特殊文字で始まるときだけです。しかし、私はStringのどこにいても1つの特殊文字を持つことができます。

+0

が一致しなければならない例といけない他人をご提示ください。 – shift66

答えて

0

使用matcher.find()なくmatcher.match()\\wを検索し、削除し、プラス(+)それはあなたのstring.Ifにすべての英数字列にマッチしますので、あなたの文字列にのみ、それらを含んで、あなたの正規表現は、文字列全体にマッチします。

1

ので、あなたの正規表現を取って、文字列の先頭からマッチングを開始し、文字列の末尾に一致停止する正規表現エンジンを指示する^$アンカーを使用します。

^(\\W).{1,1}(\\w+)$

てくださいthis正規表現に関するOracle(Java)チュートリアルを参照してください。

1

は、この正規表現を試してみてください:\w*\W?\w*(Java文字列:"\\w*\\W?\\w*"

この式は、長さゼロの文字列にマッチするという欠点があります。 の入力にという特殊文字が1つしかない場合は、疑問符?を式から削除します。

0

私が正しくあなたの正規表現を理解していれば、これはあなたの問題を解決することができます:

([\w]+)([^\w])([\w]+) 
+0

私はアルファベット文字と1つの特殊文字だけができる文字列が好きです。例えば。有効:abc!無効:abdc @ y! –

関連する問題