正規表現を使用して位置情報を含む文字列を検証する必要があります。
例:
020005254877841100557810AAAAAA841158891BBBB
5 位から 10 位までのマッチ ポジションを取得する必要があり、数字のみである必要があります。
正規表現を使用してこれを行うにはどうすればよいですか?
うーん、それは本当に正規表現である必要がありますか? 私はこのようにしたでしょう。
var myString = "020005254877841100557810AAAAAA841158891BBBB";
var isValid = myString.Substring(4, 5).All(Char.IsDigit);
絶対に正規表現を使用する必要がある場合は、ここにあります....(Jonas Wの答えのようなものを使用する必要があると思いますが)。
Match m = Regex.Match(myString, "^.{4}\d{5}.*");
if(m.Success){
//do stuff
}
正規表現は、「文字列 (^) の先頭から任意の 4 文字 (.{4})、次に 5 桁の数字 (\d{5})、その他の任意の文字の数 (.*) に一致する」ことを意味します。 "
正規表現を使用する必要があると本当に感じている場合は、次のようになります。
"^....\d{5}"
次のように複数のチェックを行うこともできます。
"^....(\d{5}|\D{5})
それはすべての数字またはすべての数字以外の文字に一致しますが、空白を含むものには一致しません。
FailedDevが言及したものに基づいて構築します。
string myString = "020005254877841100557810AAAAAA841158891BBBB";
myString.Substring(5, 5); //will get the substring at index 5 to 10.
double Num;
bool isNum = double.TryParse(myString, out Num); //returns true of all numbers
それが役立つことを願って、