c# Regex用元字符匹配整个单词

本文关键字:单词 字符 Regex | 更新日期: 2023-09-27 18:05:50

我有点挣扎,以获得正确的正则表达式为搜索词

DESC + 7%

在我的源数据中:

DESC          SFD        (HZ)
WGT.     15,000  LENGTH   15.00
LDWGT.     22,000          BBDESC + 7%o
GWGT     37,000                          ABAB
DESC + 7%        39,590               LLL
QA       SS SDB

我可以看到我需要转义+和%,我只想匹配整个单词,而不是当它是另一个单词的一部分时。

这是我当前的正则表达式字符串,但它似乎不匹配?

'bDESC '+ 7'%'b

有人知道为什么吗?

c# Regex用元字符匹配整个单词

你必须在末尾设置一个大写的B:

'bDESC '+ 7'%'B

的例子:

  • 在字符串"ADESC + 7%Z"的结果是"
  • 在字符串"DESC + 7%"的结果是"DESC + 7%"

不能在正则字符串的末尾使用'b,因为% character不是单词字符。当你搜索没有%字符的"DESC + 7"时,你可以使用你的正则字符串

第二个'b是错误的,因为该锚匹配非单词字符到单词字符的事务,反之亦然 ('W -> 'w'w -> 'W)

在您的模式中有代码片段'%'b。字符%不是单词字符(下一个字符也不是),因此锚单词边界 ('b)在这里永远不会匹配。

我想只要把它去掉就行了…请看这里的例子

'bDESC's'+'s7'%