SELECT (regexp_matches('Euroschinus Hoff+300'::text, E'(Euroschinus Hoff[\+])([0- 9]+)'::text)::text[])[1]::text as counter
select array_scientificname from simple_cal where array_scientificname ~ 'Semecarpus'
但是,如果有一些括号,没关系,其中的文字,既没有工作
SELECT (regexp_matches('Euroschinus (testing) Hoff+300'::text, E'(Euroschinus (testing) Hoff[\+])([0-9]+)'::text)::text[])[1]::text as counter
select array_scientificname from simple_cal where array_scientificname ~ 'Semecarpus(test)'
我只是想获取文本。没有为()定义的模式,可以在文本的任何地方。
我注意到在括号前使用\来做它的窍门(见下文),但这根本不实用。我想我应该包括的地方,()被允许在字符串中...
SELECT (regexp_matches('Euroschinus (testing) Hoff+300'::text, E'(Euroschinus jaffrei \\(testing\\) Hoff[\+])([0-9]+)'::text)::text[])[1]::text as counter
1'jaffrei'字损害你的正则表达式 2.我不明白 - 你想提取它之前的数字或文字? '计数器'表示第一个,'[1]'表示第二个。 – LisMorski 2012-07-19 12:11:45
这个问题目前还不清楚。请添加一个字符串示例以及您想要从中获得的内容。 – 2012-07-19 13:05:09