Alteryx中含括号内分号的字符串解析及正则适配需求
解决Alteryx中括号内含分号的字符串解析问题
第一步:替换括号外的分号,拆分主条目
原适配大括号的正则(;*)+(?![^{]*})修改为适配小括号的版本:
;+(?![^()]*\))
- 逻辑:匹配不在小括号内部的分号,负向预查
(?![^()]*\))确保当前分号后不会出现「非括号字符+右括号」的序列(即分号不在未闭合的左括号内)。
在Alteryx中使用「正则表达式替换」工具,将匹配到的分号替换为你需要的分隔符(如换行符\n),示例数据:
Corp Other Matters (Board; Mgmt); Board (Replace); Strategy(Change)
替换后得到独立主条目:
- Corp Other Matters (Board; Mgmt)
- Board (Replace)
- Strategy(Change)
第二步:拆分括号内的分号,生成子条目
对每个主条目,通过以下步骤拆分括号内的内容:
- 提取前缀与括号内内容:用正则
(.*?)\((.*?)\)匹配,分组1为括号前的前缀内容,分组2为括号内的文本。- 示例匹配结果:
- 前缀:
Corp Other Matters - 括号内内容:
Board; Mgmt
- 前缀:
- 示例匹配结果:
- 拆分括号内内容:用「文本转列」工具,以分号为分隔符拆分分组2的内容。
- 组合生成新条目:用「公式」工具将前缀与拆分后的每个子内容拼接为
前缀(子内容)格式,例如:[前缀] + "(" + [拆分后的子内容] + ")"
最终得到目标条目:
- Corp Other Matters (Board)
- Corp Other Matters (Mgmt)
- Board (Replace)
- Strategy(Change)
内容的提问来源于stack exchange,提问作者MattWD
相关产品推荐
相关产品推荐

