I have a string like as follows.
var string = "My id is 6aT7u. I used to play basketball and cricket.";
I have to extract the ID, i.e an alphanumeric word, using a regex. I have to extract 6aT7u in this case.
I tried [a-zA-Z0-9] but this doesn't work.
CodePudding user response:
You can use
\b(?:\d [A-Za-z]|[A-Za-z] \d)[a-zA-Z0-9]*\b
See the regex demo. Details:
\b- a word boundary(?:\d [A-Za-z]|[A-Za-z] \d)- a non-capturing group matching either\d [A-Za-z]- one or more digits and then an ASCII letter|- or[A-Za-z] \d- one or more ASCII letters and then a digit
[a-zA-Z0-9]*- zero or more ASCII digits or letters\b- a word boundary.
Gettting the first match in Dart can be done with a code like
var string = "My id is 6aT7u. I used to play basketball and cricket.";
var rx = RegExp(r'\b(?:\d [A-Za-z]|[A-Za-z] \d)[a-zA-Z0-9]*\b');
var match = rx.firstMatch(string);
if (match != null) {
print(match.group(0));
}
// => 6aT7u
