.net - 需要帮助构建正则表达式以匹配特定字符串(内部示例)

标签 .net regex

我正在开发一个程序,需要匹配正则表达式和字符串。该字符串实际上非常简单,但我当前的正则表达式有问题(我正在使用 .net 正则表达式引擎)

我当前的正则表达式是“^[VvEeTtPp][^a-zA-Z0-9\s]\d{0,12}?$”

现在,我想要匹配的字符串总是遵循这种模式

  1. 首先是一个字母(无论哪种情况,只允许使用 V、E、P、T 字母)
  2. 然后,破折号
  3. 最后是 4 到 12 位数字。

最后一个限制是正则表达式必须匹配任何符合规则的子字符串(例如“V”或“E-”或“P-123”)

正则表达式工作得相当好,但它会接受像“V--”这样的东西。

有人可以帮我写一个更好的表达方式吗?

谢谢

最佳答案

这应该可以做到:

^[EPTVeptv](-(\d{4,12})?)?$

编辑:
还要匹配“P-123”、“-123”和“123”等子字符串:

^(?=.)[EPTVeptv]?(-\d{,12})?$

编辑2:
在开头添加了正向前瞻,以便模式与子字符串“”不匹配。尽管这是合法值的有效子字符串,但我假设您不想要该特定子字符串...

关于.net - 需要帮助构建正则表达式以匹配特定字符串(内部示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1325108/

相关文章:

c# - 下层调用者是否能够从使用 C# 4.0 生成的程序集中的可选参数中获益?

c# - 用于商业应用程序的本地 .NET 版本的 Rsync 可用吗?

.net - Windows x64 C# x86 控制台应用程序 exe 似乎可以使用 "DLL any CPU"有潜在问题吗?

regex - 如何使用Excel VBA脚本删除某些字符

c# - 如何删除 ListViewItem 上的选择边框

regex - Perl 正则表达式插值

regex - R:使用 POSIX 正则表达式从字符串中提取数据

regex - 在终端中选择带有前导 "_"(下划线)符号的文件夹(不是文件)

javascript - 接受正数和负数的正则表达式

javascript - 我必须使用 javascript 显示超过 20,000 条记录,但这需要很多时间