帮助使用正则表达式

本文关键字:正则表达式 帮助 | 更新日期: 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