DXL - matches() 的正则表达式,仅匹配整个单词

DXL - Regex for matches() that only matches whole word

我使用的是 dxl,我有两个字符串,其中字符串 a 是换行分隔的 ID 集合,字符串 b 是我要在字符串 a 中查找的特定 ID。

坏案例:

字符串 a = "ID12\nID2\nID3"

字符串 b = "ID1"

matches(b,a) 在这种情况下会错误地 return true 当我希望它 return false 因为没有确切的 "ID1" id。 DXL 将支持什么正确的正则表达式,以便在这种糟糕的情况下 returns false?

使用开始和结束锚点:

\AID1\Z

这些锚点不同于^$,当使用MULTILINE标志时,它们也会匹配的开始和结束.

string a = "ID12\nID2\nID3"

string b = "^ID1$"

print matches(b,a)

以上将正确 return false - 对于您的特定示例,您需要断言 ID1 是从行的开始 (^) 到结束 ($) 的完整字符串。

DXL正则表达式中没有MULTILINE标志; \A 和 \Z 不是 DXL 的有效控制字符。