【发布时间】:2019-06-14 02:46:02
【问题描述】:
我正在尝试排除文本限定符中的分隔符。为此,我正在尝试使用正则表达式。但是,我是 Regex 的新手,无法完全满足我的需求。如果有人可以帮助我,我将非常感激。
在 Alteryx 中,我将分隔的平面文本文件加载为“非分隔”,并说它没有文本限定符。因此,输入看起来像这样:
- "aabb"|ccdd|eeff|gghh
- "aa|bb"|ccdd|eeff|gghh
- "aa|bb"|ccdd|"ee|ff"|gghh
- "aa|bb"|"cc|dd"|"ee|ff"|"gg|hh"
- “aabb”|“ccdd”|“eeff”|“gghh”
- "aabb"|"ccdd"|"eeff"|"gg|hh"
- aabb|ccdd|eeff|gghh
- "aa|bb"|ccdd|eeff|"gg|hh"
- aabb|cc|dd|eeff|gghh
- aabb|"cc||dd"|eeff|gghh
- aabb|"c|c|dd"|eeff|gghh
- "aa||bb"|ccdd|eeff|gghh
- "a|a|b|b"|ccdd|eeff|gghh
- "aabb"|ccdd|eeff|"g|g|hh"
- "aabb"|ccdd|eeff|"gg||hh"
我想排除文本限定符之间的所有分隔符。
我尝试使用正则表达式将文本限定符中的分隔符替换为空。
到目前为止,我已经为我的目标尝试了以下正则表达式代码:
(")(.*?[^"])\|+(.*?)(")
我使用以下内容进行替换: $1$2$3$4
但是,这不会修复第 11、13、14 和 15 行。
我希望得到以下结果:
- "aabb"|ccdd|eeff|gghh
- "aabb"|ccdd|eeff|gghh
- "aabb"|ccdd|"eeff"|gghh
- “aabb”|“ccdd”|“eeff”|“gghh”
- “aabb”|“ccdd”|“eeff”|“gghh”
- “aabb”|“ccdd”|“eeff”|“gghh”
- aabb|ccdd|eeff|gghh
- "aabb"|ccdd|eeff|"gghh"
- aabb|cc|dd|eeff|gghh
- aabb|"ccdd"|eeff|gghh
- aabb|"ccdd"|eeff|gghh
- "aabb"|ccdd|eeff|gghh
- "aabb"|ccdd|eeff|gghh
- "aabb"|ccdd|eeff|"gghh"
- "aabb"|ccdd|eeff|"gghh"
提前感谢您帮助我!
诚挚的问候, 罗宾
【问题讨论】:
-
在我的目标 (")(.?[^"])\|+(.?)(") 中,点和问号之间有一个星号。不知何故,星号 * 未显示。
-
在第 14 行和第 15 行,我希望我的目标是: 14. "g|g|hh" 15. "gg||hh" 但是,目标从第一个 " 符号开始。我不知道如何忽略我的目标中没有封装分隔符的文本限定符。