如何在复杂条件下获得特定字符

Posted

技术标签:

【中文标题】如何在复杂条件下获得特定字符【英文标题】:How to get specific character in complicated condition 【发布时间】:2021-12-08 08:37:16 【问题描述】:

我喜欢以下专栏。我想收到login_name 之后的信件

test_id:taaotai,priority:Primary,login_name:[person1]

我想从上面的列中获取person1

如果有人有意见,请告诉我

【问题讨论】:

【参考方案1】:

您可以将substring 与正则表达式一起使用:

select substring(login_name from 'login_name:\[(.*)\]')
from your_table

【讨论】:

【参考方案2】:

正则表达式搜索将完成这项工作。

select (regexp_matches(
  'test_id:taaotai,priority:Primary,login_name:[person1] and whatever else', 
  '\mlogin_name:\s*\[(.+)\]')
)[1];

-- person1

【讨论】:

以上是关于如何在复杂条件下获得特定字符的主要内容,如果未能解决你的问题,请参考以下文章

在Javascript中使用特定位置有条件地删除字符

linux下如何获得特定字符串前后几行文本

如何在不使用坐标方法的情况下在 XCode UI 测试中点击字符串语句的特定部分/单词

如何使用 REGEXP_REPLACE 替换特定条件下的重复单词?

如何在给定的前提条件下仅删除某些字符

MySQL 在特定条件下返回最新和最长的连续行