Regex 如何在dart中仅从字符串中删除符号
我想从字符串中删除所有特殊符号,并且字符串中只有单词 我尝试过这个,但它只提供相同的输出Regex 如何在dart中仅从字符串中删除符号,regex,dart,flutter,Regex,Dart,Flutter,我想从字符串中删除所有特殊符号,并且字符串中只有单词 我尝试过这个,但它只提供相同的输出 main() { String s = "Hello, world! i am 'foo'"; print(s.replaceAll(new RegExp('\W+'),'')); } 输出:你好,世界!我是“福” 预期:Hello world i am foo声明如果以这种方式构造正则表达式,则应使用原始字符串(以r为前缀的字符串文字,如r“Hello world”)。这在使用转义符的
main() {
String s = "Hello, world! i am 'foo'";
print(s.replaceAll(new RegExp('\W+'),''));
}
输出:你好,世界!我是“福”
预期:
Hello world i am foo
声明如果以这种方式构造正则表达式,则应使用原始字符串(以r
为前缀的字符串文字,如r“Hello world”
)。这在使用转义符的地方特别必要
此外,您的正则表达式也将捕获空格,因此需要对其进行修改。您可以改用RegExp(r“[^\s\w]”
来匹配任何非空白字符或单词字符有两个问题:
不是有效的转义序列,若要在常规字符串文字中定义反斜杠,需要使用'\W'
,或使用原始字符串文字(\\
)r'…')
正则表达式模式匹配任何非单词字符(包括空格)的字符,您需要将否定字符类与单词和空格类一起使用,\W
[^\W\s]
输出:
Hello world i am foo
我在寻找如何从字符串中删除符号时发现了这个问题。对于来到这里想要这样做的其他人:
final myString = 'abc=';
final withoutEquals = myString.replaceAll(RegExp('='), ''); // abc
谢谢,它工作了,但也删除了空格。你能告诉我如何不删除空格吗?工作了,我在end@RajeshJr. 您可以将其合并到1个正则表达式中:
.replaceAll(新的正则表达式(r'(?:|[^\w\s])+','')
在用数字字符串“32.151”中的“”替换“.”时,我得到了错误的结果@A.easazadeh,这是因为
点字符在正则表达式中的意思。因此,在您的示例中,每个字符都被匹配和替换。如果您只想匹配文本
点,则需要将其转义为RegExp('\.')
或RegExp(r'\.')
或RegExp('[.]')
。
final myString = 'abc=';
final withoutEquals = myString.replaceAll(RegExp('='), ''); // abc