2016-08-30 9 views
0

私は正規表現で複数の単語をチェックしようとしていますが、できませんでした。複数の単語のチェック

"FOOブーイングを" 失敗する必要があり

@"[^a-zA-Z0-9\s].{1,35}" 

"fooが"

"foo" を失敗するべき成功

"fooのブーイング武" 確かにする必要があり成功

+2

タスクが単純な場合、Regexは悪い選択です。単純な 'String.Split'はそのトリックを行うべきです。 – user3185569

+0

たぶん '@"^\ w +(?:\ s + \ w +){1,34} $ "'? –

+2

'str.Split( '').Length> 1'は動作しません... – Sayse

答えて

1

、あなたの場合コードを使用することができます。空白で分割すると1より大きいチャンクが返されるかどうかを確認するだけです(空の要素を除いて分割する)。

私は正規表現が「単語」文字からなる2〜35スペースで区切られた単語を有することができ、任意の文字列を一致させる必要がある場合アーキテクチャ

にについてのC#コードを使用することができない、正規表現を必要としますあなたは文字だけまたはdを許可する必要がある場合はregex demo

を参照してください

@"^\w+(?:\s+\w+){1,34}$" 

を使用することができます(つまり、文字、数字またはアンダースコア、です) igits、\wから下線を引く:

@"^[\w-[_]]+(?:\s+[\w-[_]]+){1,34}$" 
    ^^^^^^^^ 

また、(それは少し短い)[\w-[_]] = [^\W_]ことに注意してください。単語間に空白を1つだけ入力する必要がある場合は、\sの後に+を削除してください。

@"^[\w-[_]]+(?:\s[\w-[_]]+){1,34}$" 
       ^^ 
+0

私も特殊文字を許可する必要があります。または "&"私はこれを使用しています@ "^ \ w +(?:\ s + \ w +){1,34} $" – Mert

+1

あなたはそれらを一致させる必要がありますか?どこでも使用できる場合は、@ @^- - 。\ w] +(?:\ s + [ - &。\ w] +){1,34} $ "' –

+0

Wiktor私が推測するすべての文字を受け入れるには、ロシアの文字のようなfench文字もおそらく日本語/中国語charaters。それに対する解決策はありますか? – Mert

関連する問題