【问题标题】:Dart Regex for alphanumeric, including dashes and spaces but not blank String用于字母数字的 Dart 正则表达式,包括破折号和空格,但不包括空白字符串
【发布时间】: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

标签: regex dart


【解决方案1】:

您已经转义了$ 符号,因此它不会指示行尾,而是使用我确定您不想要的字母“$”。试试这个:

RegExp(r'^(?!\s*$)[a-zA-Z0-9- ]{1,20}$');

我可以建议使用这样的网站尝试和调试 RegExp,它可以很好地解释解析的每个部分:https://regex101.com/

【讨论】:

  • 啊废话,我没注意到。谢谢!
猜你喜欢
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 2010-10-19
相关资源
最近更新 更多