【问题标题】:c# regex pattern not triggering on a single characterc# 正则表达式模式不触发单个字符
【发布时间】:2022-11-22 09:08:27
【问题描述】:

我有一个正则表达式模式,它在名称字符串中的单词之间寻找一个空格的有效字符。似乎工作正常,但如果我只解析一个有效字符,它会失败,知道为什么吗?

^(?!.*?\s{2})[a-zA-Z0-9-'][a-zA-Z0-9-' ]*[a-zA-Z0-9-']$

提前致谢!

【问题讨论】:

  • 请添加示例数据。
  • 请提供我们可以在控制台应用程序中复制、粘贴和运行的完整代码。

标签: c# regex


【解决方案1】:

Regex101 向您展示了原因:https://regex101.com/r/u9uwUp/1 - 最后的 [a-zA-Z0-9-']$ 代表所需的第二个字符。

在末尾添加一个 ?(在 $ 锚点之前)以使第二个字符可选并且它匹配单个字符:

^(?!.*?s{2})[a-zA-Z0-9-'][a-zA-Z0-9-' ]*[a-zA-Z0-9-']?$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多