0

私は正規表現の初心者であり、それを学ぼうとしています。私の要件は、文字列に小さなアルファベットが含まれている場合にのみ有効と見なすことです。それ以外は絶対にありません。例:abc、khj、sdfsは有効な単語ですが、Abc、KHJ、123、a$bdは無効です。

私は次のような正規表現を書いています:

 private bool IsValid(string str)
 {
    Regex r = new Regex(@"[a-z][^<>%'=\$]");
    Console.WriteLine(str + " : " + r.IsMatch(str).ToString()); 
    return r.IsMatch(str);
 }

しかし、このメソッドに次の入力を渡すと、次のようになります。

"a<>'b=b"
 "abc"
 "a$b"
"123"
"IHH"

有効であると識別していますが、有効な単語としてabcも認識a$bしています。a<>'b=btrueそれらのために戻る)スキップする方法を理解したいのでa$b、メソッドはそれらのためにa<>'b=b ??戻る必要falseがあります。

私が理解するのを手伝ってください。

ありがとう

4

3 に答える 3

1

適切なパターンでこの種の方法を使用します。

private bool IsValid(string str)
 {
    Regex r = new Regex(@"^[a-z]+$");
    Console.WriteLine(str + " : " + r.IsMatch(str).ToString()); 
    return r.IsMatch(str);
 }
于 2012-07-22T06:34:32.417 に答える
0

正規表現は次のようになります

var pat = /^[a-z]+$/;
于 2012-07-22T06:19:36.040 に答える
0

良い参考資料:RegExチートシート

これを試して:^[a-z]+$

于 2012-07-22T06:20:24.587 に答える