regex - 如何提取 Postgresql 中星号之间的文本?

标签 regex postgresql substring postgresql-9.5

如何提取星号之间的文本?

SELECT substring('QUITAR1 *W01 - 123456/9*  QUITAR2 ' from '%#"*_*#"_' for '#')

我需要通过以下方式检索文本:W01 - 123456/9

PostgreSQL 9.5.-

最佳答案

如果你想使用 substring with regular ,带星号到方括号:

t=# SELECT substring('QUITAR1 *W01 - 123456/9*  QUITAR2 ' from '%#"[*]%[*]#"%' for '#');
    substring
------------------
 *W01 - 123456/9*
(1 row)

所以得到你想要的:

t=# SELECT replace(substring('QUITAR1 *W01 - 123456/9*  QUITAR2 ' from '%#"[*]%[*]#"%' for '#'),'*','');
    replace
----------------
 W01 - 123456/9
(1 row)

我正在使用替换,因为文本中有星号可能会破坏面具

关于regex - 如何提取 Postgresql 中星号之间的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429384/

相关文章:

regex - s{SOMESTR}{$myvar} 在 perl 中是什么意思?

java - 正则表达式 - 捕获大括号之间的增量数字

postgresql - 触发 .. AFTER 和 BEFORE 特定列已更改

ruby - 使用正则表达式扫描子字符串并忽略大小写

python - 提取开始标记和结束标记之间的所有字符串

javascript - HEX 格式的正则表达式

javascript - 如何在我的正则表达式中允许 `.`?

postgresql - 将 AWS RDS Postgresql 复制到本地 Postgresql

ruby-on-rails - Mongoid 和 Postgres 脚手架/关系

javascript - 字符串的粗体部分/向变量添加样式