如何用正则仅替换字符串中‘Midday Routines’的第二次出现?
解决iPhone Shortcuts中仅替换第二次匹配字符串的问题
正则表达式方案
要实现仅替换第二次出现的Midday Routines,可以使用捕获组+非贪婪匹配的正则逻辑,避免替换所有匹配项:
查找正则:
^(.*?Midday Routines.*?)\bMidday Routines\b
替换内容:
$1⚡ Midday Routines
逻辑说明
^:锚定字符串开头,确保从文本起始位置开始匹配(.*?Midday Routines.*?):非贪婪捕获组,捕获第一次出现Midday Routines及其前后的所有内容(直到第二次Midday Routines出现前停止)\b:单词边界,确保精确匹配独立的Midday Routines,不会误匹配Midday Routines Done中的部分字符串$1:引用捕获组的内容,保留第一次匹配及之前的所有文本,仅在第二次匹配前添加⚡前缀
操作步骤
在iPhone Shortcuts的「替换文本」动作中:
- 勾选「使用正则表达式」选项
- 将上述查找正则填入「查找」栏
- 将替换内容填入「替换为」栏
执行后,原字符串:
Log First Meal Time,Twitter,Midday Routines Done,Midday Routines
会被替换为:
Log First Meal Time,Twitter,Midday Routines Done,⚡ Midday Routines
内容的提问来源于stack exchange,提问作者livemyaerodream
相关产品推荐
相关产品推荐

