【问题标题】:only allow white space in between characters只允许字符之间有空格
【发布时间】:2013-09-17 10:07:51
【问题描述】:

我只想在字符之间允许 a-z、A-Z 和空格。为此,我使用以下正则表达式,问题是它也允许前导和尾随空格。是否可以将其调整为不允许前导或尾随空格。

[a-zA-Z\\ \\\']*

示例 “查尔斯王子”应该通过
由于前导空格,“查尔斯王子”应该失败
'查尔斯王子'应该由于尾随空格而失败

【问题讨论】:

  • 为什么里面有引号?你为什么要逃避你的空白?
  • 你能给出输入和正/负输出
  • 给出一些示例字符串和示例预期输出。你的问题有点模棱两可。您是要匹配整个字符串,还是要挑选多个匹配项。也就是说,给定“this is a test 123 foobar”,您是否期望返回“this is a test”和“foobar”?还是您希望该字符串无法通过验证?

标签: regex c#-3.0


【解决方案1】:

要禁止前导和尾随空格,您可以使用:

^[a-zA-Z](?:[a-zA-Z ]*[a-zA-Z])?$

【讨论】:

  • @PaulSnow。是时候向我们展示一些应该匹配和不应该匹配的示例字符串了。
  • @PaulSnow。我猜你没有添加锚点。立即尝试。
  • 嗯;仍然是同样的问题。您可以尝试运行它,看看是否适合您?
  • @RohitJain 这个和^[a-zA-Z](?:[a-zA-Z ]+[a-zA-Z]+)?$有什么区别@
【解决方案2】:

单词边界。就这么简单:

^\b[a-zA-Z ]*\b$

【讨论】:

  • 这对我不起作用。删除了前导空格,但我可以输入任意数量的尾随空格。 regexr.com
  • 尾随空格将阻止 /\b$/ 匹配。你明白为什么吗?
猜你喜欢
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 2020-05-09
相关资源
最近更新 更多