好的,我的数据库转储中有这些字符串:
"[:nl]Some nl text here[:fr]Some french text here"
"[:nl]Some other nl text here[:fr]Some other french text here"
我想要做的是对转储进行搜索替换,并删除 [:fr]
之后的字符串,直到结束双引号 "
,与标签本身一起 [:fr]
有人可以提供可以做到这一点的正则表达式吗?
最佳答案
尝试这样:
select REPLACE('"[:nl]Some nl text here[:fr]Some french text here"',
SUBSTRING('"[:nl]Some nl text here[:fr]Some french text here"',
LOCATE('[:fr]', '"[:nl]Some nl text here[:fr]Some french text here"'), LENGTH('"[:nl]Some nl text here[:fr]Some french text here"') - LOCATE('"',
REVERSE('"[:nl]Some nl text here[:fr]Some french text here"')) - LOCATE('[:fr]', "[:nl]Some nl text here[:fr]Some french text here") + 2), '')
<强> SQL FIDDLE DEMO
编辑:
试试这个:
select substring_index('[:nl]Some nl text here[:fr]Some french text here','[:fr]',1)
<强> SQL FIDDLE DEMO
关于mysql - 一种在语言标记后清理特定字符串的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35625416/