c# - 匹配特定模式的正则表达式

标签 c# regex

请帮助我更正 C# 中的正则表达式,以便仅当满足以下条件时才匹配/验证:

  • 始终以 da/ 开头
  • da/ 后至少有一个字符
  • 仅允许使用非大写字母,范围为 a-z(包含两者)
  • 允许使用数字 0-9
  • 允许使用破折号 (-)

这是我所拥有的,但它不起作用:

/^da/+[a-z0-9+-]+$/

将验证正则表达式的接受字符串示例:

da/this-will-validate-correct-1

最佳答案

您的正则表达式允许在 da 后使用 1 个或多个 /,并且字符类中的 + 允许使用 + 符号.

从需求来看,你只需要

^da/[a-z0-9-]+$

请参阅regex demo

字符类[a-z0-9+-]后面的+要求da/后面至少有1个字符。

Regex.IsMatch("da/this-will-validate-correct-1", @"^da/[a-z0-9-]+$")

请参阅C# demo

模式解释:

  • ^ - 字符串开头
  • da/ - 字符串 da/
  • [a-z0-9-]+ - a-z0-9 范围中的 1 个或多个字符或 -
  • $ - 字符串结尾。

关于c# - 匹配特定模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37240087/

相关文章:

c# - 如何为使用 AutoMapper 和依赖注入(inject)的 .net core 2.0 服务编写 xUnit 测试?

javascript - 如何防止javascript中的非字母数字输入?

ruby - 匹配行首或空格字符后的模式的正则表达式

c# - 图像到内存慢

c# - WCF 枚举按值代理支持动态枚举

python - 为什么 '[0-9]*' 与我的 Python 正则表达式中的 'abc' 不匹配,因为字符串中有零个或多个数字?

c# - 在 C# 中将字符串解析为数组

regex - 使用 RegEx 从字母数字字符串中提取数字

c# - 处理单例实例 (C#)

c# - CA2104 警告 : Is there any way to mark a class as `Immutable` to suppress it?