MaltMaster
MaltMaster

Reputation: 758

Regular Expression start-end position

I need to make a validation in a string with positional information using regex.

Example:

020005254877841100557810AAAAAA841158891BBBB

I need to get match position 5 until 10 and has to be only numbers.

How can I do this using RegEx?

Upvotes: 2

Views: 7031

Answers (4)

Jonas W
Jonas W

Reputation: 3250

hmm does it really have to be regex? I would have done like this.

var myString = "020005254877841100557810AAAAAA841158891BBBB";
var isValid = myString.Substring(4, 5).All(Char.IsDigit);

Upvotes: 7

Erik Nedwidek
Erik Nedwidek

Reputation: 6184

If you really feel you must use a regex this will be the one:

"^....\d{5}"

You can also do multiple checks like this:

"^....(\d{5}|\D{5})

That one will match all numbers or all non-digit characters, but not a mix or anything with whitespace.

Upvotes: 0

Tyler Lee
Tyler Lee

Reputation: 2785

If you absolutely HAVE to use regex, here it is.... (Though I think you should go with something like Jonas W's answer).

Match m = Regex.Match(myString, "^.{4}\d{5}.*");

if(m.Success){
    //do stuff
}

The regex means, "from the beginning of the string (^), match 4 of any character (.{4}), then five digits, (\d{5}), then however many of any other characters (.*)"

Upvotes: 6

Eric Robinson
Eric Robinson

Reputation: 2095

To build on what FailedDev mentioned.

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

Hope that helps,

Upvotes: -1

Related Questions