如何使用正则表达式匹配所有__custom_field:xxx格式的内容?
解决方法:精准匹配
__custom_field:something格式的内容 你的问题出在原有正则过度依赖/作为匹配边界,没法处理结尾是}的情况,而且逻辑绕了弯路。其实我们可以直接针对目标格式的特征写更简洁准确的正则:
正确的正则表达式
__custom_field:[^/}]+
正则逻辑解释
__custom_field::精确匹配你要找的固定前缀,确保只捕获符合格式的内容[^/}]+:这是排除型字符集,表示匹配任意数量(至少1个)的不是/和}的字符。这样不管后面是遇到/(分隔下一个字段)还是}(字符串结尾),匹配都会自动停止,完美覆盖两种边界情况。
匹配效果测试
针对你的目标字符串:
${__active_activity_report/__custom_field:matrix_on_list/__custom_field:matrix_integer}
使用这个正则会精准捕获到两个结果:
__custom_field:matrix_on_list__custom_field:matrix_integer
实际使用示例(以Python为例)
如果你用代码实现提取,可以这样写:
import re target_str = "${__active_activity_report/__custom_field:matrix_on_list/__custom_field:matrix_integer}" pattern = r"__custom_field:[^/}]+" matches = re.findall(pattern, target_str) print(matches) # 输出: ['__custom_field:matrix_on_list', '__custom_field:matrix_integer']
内容的提问来源于stack exchange,提问作者Dems314
相关产品推荐
相关产品推荐

