我要匹配文本中的所有美元符号单词。例如,"Hello $VARONE this is $VARTWO"
将匹配$VARONE
和$VARTWO
。
正则表达式应为/\$(\w+)/g
,但是当我在Dart中将其与DartPad(https://dartpad.dartlang.org/)中的编译器一起使用时,单词不匹配。
void main() {
final variableGroupRegex = new RegExp(r"/\$(\w+)/g");
Iterable<Match> matches = variableGroupRegex.allMatches("Hello \$VARONE this is \$VARTWO");
for (Match match in matches) {
print("match $match"); // code is never run as no matches
}
}
答案 0 :(得分:2)
您可以将其修复为
final variableGroupRegex = new RegExp(r"\$(\w+)");
Iterable<Match> matches = variableGroupRegex.allMatches("Hello \$VARONE this is \$VARTWO");
for (Match match in matches) {
print(match.group(0));
print(match.group(1));
}
输出:
$VARONE
VARONE
$VARTWO
VARTWO
在这里,您使用原始字符串文字定义了正则表达式,而r"\$(\w+)
定义了\$(\w+)
模式。然后,要访问整个匹配项,您可以使用.group(0)
,并使用.group(1)
来获取捕获的值。