0

文字列にアルファベットと数字の組み合わせが含まれていることを確認するには、正規表現が必要です。特殊文字とスペースは使用できません。文字列には、少なくとも 1 つの文字と 1 つのアルファベットを含める必要があります。

4

3 に答える 3

4

説明

この意志

  • 少なくとも 1 つの文字と 1 つの数字を含むすべての文字列を検索します
  • 文字と数字のみを任意の順序で含む

^(?=[^\s]*?[0-9])(?=[^\s]*?[a-zA-Z])[a-zA-Z0-9]*$

ここに画像の説明を入力

これらの例のいくつかでは、例の$ソース文字列には実際には多くの行が含まれているため、式の末尾にある を削除したことに注意してください。文字列を適切に検証するには、複数行の一致を削除し、上記の文字を使用する必要があります$

実際の例

サンプルテキスト

11
22
33
1
2
3
1a
2b
3c
a1
b2
c3
1a1a
2b2b
3b3b
1a1
2b2
3b3
a1a
b2b
c3c
a
b
c
aa
bb
cc

C# コード例

using System;
using System.Text.RegularExpressions;
namespace myapp
{
  class Class1
    {
      static void Main(string[] args)
        {
          String sourcestring = "source string to match with pattern";
          Regex re = new Regex(@"^(?=[^\s]*?[0-9])(?=[^\s]*?[a-zA-Z])[a-zA-Z0-9]*",RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline | RegexOptions.Singleline);
          MatchCollection mc = re.Matches(sourcestring);
          int mIdx=0;
          foreach (Match m in mc)
           {
            for (int gIdx = 0; gIdx < m.Groups.Count; gIdx++)
              {
                Console.WriteLine("[{0}][{1}] = {2}", mIdx, re.GetGroupNames()[gIdx], m.Groups[gIdx].Value);
              }
            mIdx++;
          }
        }
    }
}

見つかった一致

[0][0] = 1a
[1][0] = 2b
[2][0] = 3c
[3][0] = a1
[4][0] = b2
[5][0] = c3
[6][0] = 1a1a
[7][0] = 2b2b
[8][0] = 3b3b
[9][0] = 1a1
[10][0] = 2b2
[11][0] = 3b3
[12][0] = a1a
[13][0] = b2b
[14][0] = c3c

概要

これが機能するのは、式が文字列内の数字と文字を実際に見つけることができることを検証するために先を見越してから、すべての文字と数字に一致するためです。

于 2013-05-01T14:53:43.137 に答える
2

単一の 0-9 または az または AZ のみに一致します。

[0-9a-zA-Z]

1 つ以上に一致するには

[0-9a-zA-Z]\+

また、行全体が英数字であることに興味がある場合。

^[0-9a-zA-Z]\+$

^ は行頭に一致し、$ は行末に一致します。

于 2013-05-01T08:34:40.070 に答える