2011-07-16 19 views
1

私は最近、最大2つのアスタリスクを含む文字列と一致するJava正規表現について、asked for and received helpという文字列を使用しました。これは私が受け入れ答えた:当然のことながら、必要条件は今Javaの正規表現に必要なその他の助け

^\\*?[^*]+\\*?$ 

変更されていると私はさらにそれだけで下または大文字、スペースやアスタリスクのワイルドカード文字のいずれかを含むことができるような文字列を制約する必要があります。数字または句読点(*以外)は使用できません。ワイルドカードの配置に関する制約は、上記のとおりです。

はしたがって、これらの文字列が一致することになります。

 
foo 
f oo 
*Foo 
FOO * 
*foo* 
*F o o* 

そして、これらの文字列はないでしょう:

 
* 
** 
**foo 
*f*oo 
1 
*1 
_ 
foo1* 
_foo 
%foo^ 

私は年齢がこれをうまくしようとすることができていない、でも使用して過ごしてきましたRegexBuddy。 Stack Overflowに関するこのような特定の質問をするのは本当に好きではありませんが、私自身は解決策に到達できません。

ありがとうございます。

答えて

2

これは動作するはずです:

^\\*?[a-zA-Z ]+\\*?$ 
+0

タイプミスを。大文字 'Z' –

+0

ああ、ありがとう、ありがとう –

+0

ありがとう、しかしそれは何らかの理由でアンダースコアと一致するようです。 –

1

正規表現は、すべてのUnicode文字と一致しなければならない場合:^\*?[\p{L} ]+\*?$

関連する問題