如何用正则表达式提取UTM字符串中的第5段(Subject部分)?
解决方案
可以通过匹配字符串的固定前后结构来提取Subject,核心思路是锁定前4个无-的分段和末尾两个无-的分段,捕获中间允许包含-的Subject内容。
正则表达式
^[^-]+-[^-]+-[^-]+-[^-]+-(.*)-[^-]+-[^-]+$
规则解释
^[^-]+-[^-]+-[^-]+-[^-]+-:匹配字符串开头的4个独立分段(每个分段不含-),以及第4段后的分隔符-(.*):捕获组,匹配Subject内容,支持包含任意字符(包括-)-[^-]+-[^-]+$:匹配结尾的两个独立分段(每个分段不含-),确保捕获的Subject截止到倒数第二个-之前
SQL使用示例(以MySQL为例)
假设UTM字符串存储在utm_table表的utm_str字段中,可通过以下语句提取Subject:
SELECT REGEXP_SUBSTR(utm_str, '^[^-]+-[^-]+-[^-]+-[^-]+-(.*)-[^-]+-[^-]+$', 1, 1, 'c', 1) AS subject FROM utm_table;
验证结果
- 对字符串
bla-ble-blo-bli-this-bad-blau-bleu,提取结果为this-bad - 对字符串
bla-ble-blo-bli-this_good-blau-bleu,提取结果为this_good
内容的提问来源于stack exchange,提问作者G0000000se
相关产品推荐
相关产品推荐

