mysql - 使用 REGEX 从 mySQL 中的表列中选择字符串模式
问题描述
我的数据库中有一些列,其中条目采用以下形式:
["some text - more text & text","some other text - more text & text"]
那时,在数组中包含字符串是有意义的,但我现在想更新这些列,在这些列中我只有字符串的数组,以获取数组的第零个索引内的文本。
所以在这种情况下捕获:
some text - more text & text
会很可爱。我尝试了许多正则表达式来省略[ "
或尝试捕获""
like中的内容,"(.*?)\"
但我在 mySql 查询中遇到语法错误,因为它不支持延迟捕获。
我知道之前的正则表达式仍然会选择类似的值,"some text - more text & text"
但认为至少我会更接近目标,然后将字符串修剪为子字符串以省略第一个和最后一个索引所在的""
位置。有什么帮助吗?
解决方案
要获得第一个嵌套值,一种解决方案是使用REGEXP_REPLACE()
删除字符串中不需要的部分。
我建议使用以下正则表达式:(^\\[)|(")|(,.*)
. 基本上这将匹配:
- 开口支架
- 或双引号
- 或第一个逗号后的所有内容
考虑:
SELECT REGEXP_REPLACE(
'["some text - more text & text","some other text - more text & text"]',
'(^\\[)|(")|(,.*)',
''
) new_value;
| new_value |
| ---------------------------- |
| some text - more text & text |
推荐阅读
- c++ - 在任务管理器上看到的分配内存
- sql - SQL:分组并显示另一个字段的示例
- python - 在 python 数据框中搜索并返回下面的行并转置
- java - Firebase UI 回收器适配器中的不同子集合
- python - 如何像指针C一样在python中获取列表中每个值的id(地址)?
- azure - 来自天蓝色堡垒主机的 ssh 隧道
- javascript - React-Rails 绑定返回不是函数
- azure-machine-learning-service - ACI 部署问题
- c# - 如何将项目插入到c#中特定索引处的数组中?
- python - 使用 pandas 将值替换为 2 列中的条件