我有一个名为regions和column region的表,它不是空的。其中有一个文字,即“塔什干”。我试图用表达式输入访问它。这是我的代码:
select * from regions where lower(region) ~ '[t]{1,}[k]{1,}';
正如您所看到的,我正在尝试连续包含字母t
和k
。根据我的表达式:[t]{1,}[k]{1,}
,它应返回文本'Tashkent'
,但不返回。我的代码是否正确。你能否建议一个替代代码来获得“塔什干”这个词。知道我有字母t
和k
?
答案 0 :(得分:1)
您需要指定t
和k
select lower('Tashkent') ~ 't{1,}.*k{1,}';
?column?
----------
t
答案 1 :(得分:1)
1)如果我理解你想要的正则表达式是没有必要的:
select * from regions where region ilike '%t%k%'
2)如果你想用正则表达式完全做到这一点:
一个很好的解决方案是Clodoaldo Neto的解决方案:lower(region)~'t {1,}。* k {1,}'
你也可以删除带有区域〜'[tT] {1,}的低级函数。* [kK] {1,}'