帮助使用正则表达式
本文关键字:正则表达式 帮助 | 更新日期: 2023-09-27 18:02:30
我试图为这个用户创建一个正则表达式
field-122 <--the number could be into 0 to 999
我开发了这个正则表达式
Regex.Replace(htmlString, "field-*([0-9]|[1-9][0-9]|[1-9][0-9][0-9])", "|", RegexOptions.Singleline);
但是当数字大于2位时失败。
试试这个
/field-[1-9]?[0-9]{1,2}/
如果c#正则表达式不支持花括号语法,这也应该工作。
/field-[1-9]?[0-9]?[0-9]/
如果想要任意长的数字,可以使用
/field-[1-9]?[0-9]+/
作为参考,?
表示 0个或1个, +
表示一个或多个, {n,m}
表示至少n个,最多m个。
我不确定,但是您不是在搜索单词test,而是在搜索0个或更多的-
。数字捕获部分过于复杂。试一试:
"fieldText-(''d{1,3})"
根据整个帖子的反馈,我们共同提出的最佳版本是:
field-(0|[1-9]'d{0,2})
这基本上是@PaulPRO在另一个线程的评论中的贡献,由我自己修改,以反映OPs更新的要求(字段而不是fieldText)。
表示这些值:
field-122
field-1
field-55
field-999
field-0
但不包括以下值:
field-001
field-01
field-0
field--
field---
field--anything you want here
部分匹配:anything you want herefield-123