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 的有效控制字符。
我使用的是 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 的有效控制字符。