-4

次のような入力形式があります。

{random string} + " " + {integer}

例えば

a)    stringInput 43

b)    abcdefghijkl 89

正規表現を使用してこの形式を検証するにはどうすればよいですか?

私は問題に行き詰まっています: 文字列の正規表現は何ですか?

4

3 に答える 3

5
public bool IsValidString(string s)
{
  string[] strs = s.Split(' ');
  int i = 0;
  if (strs.Length != 2)
    return false;
  return (int.TryParse(strs[1], out i);
}

理解していない場合は、これに正規表現を使用する必要はありません。見たい場合の代替方法です。読みやすいかもしれませんが、個人的にはRegex非常に読みにくいと思います。

于 2013-03-15T15:24:41.487 に答える
3

これを試してみてください。

bool _result = Regex.IsMatch(yourStr, @"^[A-Za-z]+\s\d+$");

正規表現パターンの説明、

sdf

  • 行頭の位置をアサートする (文字列の先頭または改行文字の後)^
  • 以下のリストに存在する単一の文字に一致する[A-Za-z]+
    • 1回から無制限の間で、何度でも、必要に応じて恩返しをする(貪欲)+
    • 「A」から「Z」までの範囲の文字A-Z
    • 「a」から「z」までの範囲の文字a-z
  • 「空白文字」 (スペース、タブ、および改行) である単一の文字に一致します。\s
  • 1 桁の 0..9 に一致\d+
    • 1回から無制限の間で、何度でも、必要に応じて恩返しをする(貪欲)+
  • 行末の位置をアサートする (文字列の末尾または改行文字の前)$
于 2013-03-15T15:22:17.063 に答える
0

動作するはずです

bool _result = Regex.IsMatch(yourStr,@"^\w+?.\d+?$");
于 2013-03-15T15:24:24.013 に答える