【发布时间】:2020-04-08 13:37:51
【问题描述】:
我正在尝试在 Dart 中实现正则表达式,以确保字符串最多为 20 个字符、字母数字,但可以包含空格和破折号,也不能为空。我尝试了几种不同的解决方案,但无法让它兑现“空白字符串”的负面预测。这就是我现在拥有的:
^(?!\s*\$)[a-zA-Z0-9- ]{1,20}\$
我错过了什么?
【问题讨论】:
-
如果不能有连续的破折号或空格并且不在开头或结尾,您可以断言 1-20 个字符
^(?=.{1,20})[a-zA-Z0-9]+(?:[ -][a-zA-Z0-9]+)*$regex101.com/r/gxpVH1/1