假设我有一个正则表达式,用于验证电子邮件地址,例如:
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
现在,假设我还想确保以下字符集也适用于整个字符串:
[\x00-\x7F]
如何将第二个字符集限制应用于整个模式。
结果将是:
答案 0 :(得分:2)
您可以在检查字符串的开头后将其添加为正向查找:
String _formatReferenceCode(String code){
final list = code.split("");
String part1 = list.sublist(0, 3).join();
String part2 = list.sublist(3, 6).join();
String part3 = list.sublist(6, 9).join();
return "$part1-$part2-$part3";
}
String result = _formatReferenceCode(referenceCode);
// it prints: "123-456-789"
用^(?=[\x00-\x7F]+$)your_pattern_here
^^^^^^^^^^^^^^^^^
检查字符串位置的开始之后,^
将执行一次,并且要求整个字符串仅由ASCII字符组成(注意(?=[\x00-\x7F]+$)
匹配1个或多个出现,+
测试字符串位置的结尾。
正则表达式看起来像
$
请参见regex demo