【发布时间】:2019-05-14 05:22:08
【问题描述】:
我是正则表达式的菜鸟,需要一些帮助。我对正则表达式字符类、锚点和外观有基本的了解,但事实证明这个特定的用例对我来说很难。
我正在尝试解析每月运行的脚本的输出,该脚本输出用于库存目的的用户列表。我想使用正则表达式来解析文件以匹配这些条件:
- 正则表达式查找作为大写单词重复的小写单词。这些大写单词不在同一行,不连续出现,可以在新行或文件中的其他位置。
- 我需要一个能够显示重复的大写匹配项的正则表达式
- 另一个删除重复大写匹配的正则表达式
这是我尝试解析的文件输出示例:
"hello","2018-11-19","unitelife"
"world","2018-11-09","unitelife"
"foo","2018-11-16","unitelife"
"bar","2018-10-05","unitelife"
"hello123","2018-09-06","unitelife"
"HELLO123","2018-11-18","unitelife"
"FOO","2018-11-20","unitelife"
"WOWMUCHHAPPY","2018-10-20","unitelife"
"suchjoy","2017-11-28","unitelife"
我正在寻找的期望匹配是:
HELLO123
FOO
我尝试了下面引用的 URL 讨论所建议的多种组合,但似乎对我没有任何用处。要么我尝试了不正确的组合,要么这个功能是不可能的。此外,大多数主题都在讨论连续的单词或字母/字符。
如果之前讨论过这个问题或者它的分类有误,我想提前道歉。请让我知道而不是投反对票,以便我可以编辑、关闭或重新分类问题以符合相应的标准。
此致,
谦虚的学生
【问题讨论】:
-
您在什么环境下工作?
-
抱歉,如果可能的话,我希望能够在多个环境中应用它。特别是:稍后使用 grep -E、notepad++ 和/或 python 进行 bash。
-
谢谢,您尝试匹配的单词是否总是像示例中那样被
"s 包围? -
是的。我试图用 \b 和 \S 设置一些基于它们的锚点,并且能够让第一列匹配但没有超过。
标签: python regex bash grep regex-lookarounds