How to use RegEx in Dart?
I think you tried to include options in the raw expression string while you already have it as parameters to RegEx ( /i for case insensitivity is declared as caseSensitive: false).
// Removed /i at the end// Removed / in front - Thanks to Günter for warningRegExp regExp = new RegExp( r"^WS{1,2}:\/\/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:56789", caseSensitive: false, multiLine: false,);print("allMatches : "+regExp.allMatches("WS://127.0.0.1:56789").toString());print("firstMatch : "+regExp.firstMatch("WS://127.0.0.1:56789").toString());print("hasMatch : "+regExp.hasMatch("WS://127.0.0.1:56789").toString());print("stringMatch : "+regExp.stringMatch("WS://127.0.0.1:56789").toString());
Gives:
allMatches : (Instance of '_MatchImplementation')firstMatch : Instance of '_MatchImplementation'hasMatch : truestringMatch : WS://127.0.0.1:56789
This is a more general answer for future viewers.
Regex in Dart works much like other languages. You use the RegExp
class to define a matching pattern. Then use hasMatch()
to test the pattern on a string.
Examples
Alphanumeric
final alphanumeric = RegExp(r'^[a-zA-Z0-9]+$');alphanumeric.hasMatch('abc123'); // truealphanumeric.hasMatch('abc123%'); // false
Hex colors
RegExp hexColor = RegExp(r'^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$');hexColor.hasMatch('#3b5'); // truehexColor.hasMatch('#FF7723'); // truehexColor.hasMatch('#000000z'); // false
Extracting text
final myString = '25F8..25FF ; Common # Sm [8] UPPER LEFT TRIANGLE';// find a variable length hex value at the beginning of the linefinal regexp = RegExp(r'^[0-9a-fA-F]+'); // find the first match though you could also do `allMatches`final match = regexp.firstMatch(myString);// group(0) is the full matched text// if your regex had groups (using parentheses) then you could get the // text from them by using group(1), group(2), etc.final matchedText = match?.group(0); // 25F8
There are some more examples here.