【发布时间】:2018-04-28 17:38:45
【问题描述】:
我正在使用这个:
grep '\s[A-Z]+\s[A-Z]+\s' file.txt -Po
哪个会匹配
ABC DE
AB AB
DEF GHIFOO
等
我想要做的是类似的事情
grep '\s([A-Z]+)\s%1\s' file.txt -Po
只匹配
AB AB
BC BC
DDD DDD
等等
我什至无法解决,更不用说如何解决了。是吗?
谢谢
【问题讨论】:
我正在使用这个:
grep '\s[A-Z]+\s[A-Z]+\s' file.txt -Po
哪个会匹配
ABC DE
AB AB
DEF GHIFOO
等
我想要做的是类似的事情
grep '\s([A-Z]+)\s%1\s' file.txt -Po
只匹配
AB AB
BC BC
DDD DDD
等等
我什至无法解决,更不用说如何解决了。是吗?
谢谢
【问题讨论】:
第一个捕获的组应指定为\1 而不是%1:
示例file.txt:
AA AB
AB AB
BC BC
DDD DDD
NN WN
考虑更新的正则表达式模式:
grep -Po '\b([A-Z]+)\s\1\s*' file.txt
输出:
AB AB
BC BC
DDD DDD
奖励相反行动的方法:
grep -Po '\b([A-Z]+)\s(?!\1)[A-Z]+\s*' file.txt
输出:
AA AB
NN WN
【讨论】: