【发布时间】:2018-12-23 02:30:47
【问题描述】:
我正在尝试为电子邮件地址创建正则表达式匹配,并打算在 dart 应用程序中使用它。
我为此找到了以下正则表达式:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
现在我对飞镖真的很陌生,但我知道我可以使用r'' 或r"" 创建正则表达式字符串。
现在使用 dart 我可以用 \ 转义字符,所以如果我想转义以撇号开头和结尾的字符串中的撇号,我可以这样做:
final String a = 'foo\'bar';
但是使用final String a = r'foo\'bar' 我得到一个错误。我怎样才能正确地逃避呢?
谢谢
【问题讨论】:
-
你用
RegExp('...')api.dartlang.org/stable/2.1.0/dart-core/RegExp-class.htmlr创建一个正则表达式是原始的,如下所述来判断 Dart 是否应该进行字符串插值。 dartlang.org/guides/language/language-tour#strings