我试图为这个护士创建一个正则表达式
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位数时失败。表达式
有什么问题答案 0 :(得分:2)
尝试使用此尺寸
/field-[1-9]?[0-9]{1,2}/
如果C#正则表达式不支持大括号语法,这也应该有效。
/field-[1-9]?[0-9]?[0-9]/
如果您想要任意长号,可以使用
/field-[1-9]?[0-9]+/
作为参考,?
表示零或一个,+
表示一个或多个,{n,m}
表示至少n,最多m 。
答案 1 :(得分:1)
我不确定,但你不是在搜索单词test,而是在搜索0个或更多-
个。数字捕获部分过于复杂。尝试:
"fieldText-(\\d{1,3})"
答案 2 :(得分:1)
根据整个帖子的反馈,我们共同提出的最佳版本是:
field-(0|[1-9]\d{0,2})
这基本上是@PaperPRO在对我自己修改的另一个线程的评论中的贡献,以反映OP更新的要求(字段而不是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