MySQL如何移除列中特定格式前缀字符串?求适用正则表达式
解决MySQL中移除特定可变前缀的正则方案
可以使用MySQL的REGEXP_REPLACE函数,配合以下正则表达式匹配并移除目标前缀:
UPDATE your_table_name SET your_column_name = REGEXP_REPLACE(your_column_name, '^https://mlnyhdtvoz4t\\.i\\.optimole\\.com/[a-zA-Z0-9-]+/w:auto/h:auto/q:82/', '') WHERE your_column_name LIKE 'https://mlnyhdtvoz4t.i.optimole.com/%/w:auto/h:auto/q:82/%';
正则表达式细节说明:
^:锚定字符串起始位置,确保只替换开头的目标前缀,避免误匹配中间的相似内容https://mlnyhdtvoz4t\\.i\\.optimole\\.com/:匹配固定域名部分,.在正则中属于特殊字符,需要用\\.转义[a-zA-Z0-9-]+:匹配中间的可变字符串,允许大小写字母、数字和连字符,+表示该部分至少包含一个字符/w:auto/h:auto/q:82/:匹配固定的后缀参数路径部分- 替换为空字符串
'',即可保留前缀之后的剩余内容
验证建议:
执行更新前,先通过SELECT语句验证清理效果,避免误操作:
SELECT your_column_name, REGEXP_REPLACE(your_column_name, '^https://mlnyhdtvoz4t\\.i\\.optimole\\.com/[a-zA-Z0-9-]+/w:auto/h:auto/q:82/', '') AS cleaned_column FROM your_table_name WHERE your_column_name LIKE 'https://mlnyhdtvoz4t.i.optimole.com/%/w:auto/h:auto/q:82/%';
如果可变字符串包含其他特殊字符(如下划线),可调整字符范围为[a-zA-Z0-9-_]+。
内容的提问来源于stack exchange,提问作者yyiws
相关产品推荐
相关产品推荐

