c# - 页面范围的正则表达式

标签 c# regex

<分区>

C# 中验证以下条件的最佳正则表达式是什么?

1, 2-10,5-10,6,9-100 - 它类似于指定为范围的页码或用逗号分隔的单个页码。

最佳答案

试试下面的表达式:

\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*

请注意,该模式非常脆弱,因为它不允许任何空白。


这个想法是围绕主要子模式\d+(?:-\d+)?构建的:

  1. \d+ — 匹配一个或多个连续数字(独立或作为左范围边界)
  2. -\d+ — 匹配减号后跟一位或多位数字(右范围边界)

尾随问号使减号和右范围边界可选(这也需要匹配单个页码); (?:) 表示 non-capturing group .

关于c# - 页面范围的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20480155/

相关文章:

python - 如何从字符串中提取子字符串,避免包含分隔符?

c# - 重载、泛型和类型约束 : method resolution

c# - 在 APS.NET Core 2 应用程序中使用(并强制执行)HTTPS

c# - 来自不同类的 UITextField null

c# - 将C#程序编译到Program.exe中时出错

r - 将元素添加到 R 中的调用对象

javascript - 像 12,345,678,900 这样的字符串的正则表达式模式?

c# - 使用 C# 将 HTML 转换为图像。 Html 有标签以及 base64 字符串问题

Python/Regex 部分字符串替换

regex - Linux - 想要检查可能的重复目录(可能需要 RegEx)