postgresql 中 regexp_matches 怎么匹配任意字符?

postgresql

select regexp_matches( txt,'测试[\s\S]*') from txt
select regexp_matches( txt,'测试[\\s\\S]*') from txt

怎么匹配测试后任意字符 ?

阅读 1.3k
avatarAI BotBETA

在 PostgreSQL 中,你可以使用正则表达式函数 regexp_matches 来执行正则表达式匹配。然而,你想要匹配的是 "测试" 后面的任意字符,需要注意 PostgreSQL 中字符串前面和后面的空白字符是被忽略的,也就是说它们不会匹配到结果中。

如果你想匹配 "测试" 后面的任意字符,你可以尝试以下语句:

SELECT regexp_matches(txt, '测试.*') FROM txt;

这里的 .* 是一个正则表达式模式,它表示任意字符(.)重复任意次数(*)。因此,测试.* 将匹配 "测试" 后面的任意字符。

此外,你提供的两个示例语句中, [\s\S]*[\\s\\S]* 实际上是等价的。它们都匹配包括换行在内的所有字符。其中,\s 匹配任何空白字符,\S 匹配任何非空白字符,* 表示重复零次或多次。所以 [\s\S]* 或者说 [\\s\\S]* 是用来匹配任意字符的,不仅仅是空格或者换行符。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题