2

我有字符串:

lorem ipsum Outer.Middle.Last dolor #1
lorem ipsum Outer.Middle dolor      #2

目前我正在使用正则表达式[[:<:]]Outer.Middle[[:>:]]尝试仅匹配字符串#2。但是,由于幼稚的边界,这与字符串 #1 和 #2 都匹配。

我试图做某种前瞻,例如[[:<:]]Outer.Middle(?!.)[[:>:]],但这是完全错误的。

正则表达式是必要的,因为我正在使用 PostgreSQL 并查询包含在文本正文中的类名。

任何解决方案或解决方案的指导都将受到高度赞赏。

4

1 回答 1

3

这对我有用:

select * from my_table where my_col ~ '[[:<:]]Outer\\.Middle[[:>:]](?!\\.)'

这 。字符应该被转义(否则它们被视为匹配任何一个字符的通配符),并且反斜杠也需要转义。

这也相当于:

select * from my_table where my_col ~ '[[:<:]]Outer[.]Middle[[:>:]](?![.])'
于 2012-12-21T01:35:16.177 回答