6

文字列を照合して、文字だけで構成されているかどうかを確認しようとしています。あらゆる種類の文字を許可する必要があります。そのため、典型的なa-zA-Zだけでなく、áàéèó...など.

次の正規表現と一致させようとしました:([\S])*

ただし、これにより、などの文字も許可されます\/<>*()...。それらは明らかに名前に属さない文字です。文字と「特殊」文字のみを許可したい場合、正規表現はどのように見えますか?

4

2 に答える 2

7

正規表現ソリューションの場合は、char.IsLetterを使用できます

Char.IsLetterメソッド

指定されたUnicode文字が英字に分類されるかどうかを示します。

string str = "Abcáàéèó";
bool result = str.All(char.IsLetter);

これfalseにより、数字\/<>*()などの結果が得られます。

于 2013-02-28T09:19:15.690 に答える
6

あなたはまさにそれを言うキャラクタークラスを使うことができます:

\p{L}

したがって、正規表現

^\p{L}+$

文字列が文字のみで構成されている場合に一致します。文字の組み合わせを期待する場合は、

^(\p{L}\p{M}*)+$

動作します。

クイックPowerShellテスト:

PS> 'foo','bär','a.b','&^#&%','123','кошка' -match '^\p{L}+$'
foo
bär
кошка
于 2013-02-28T09:17:14.167 に答える