【发布时间】:2016-08-11 13:32:11
【问题描述】:
我正在尝试使用一个约束来提取单词[a-zA-Z]+:一个单词必须包含至少一个小写字母和至少一个大写字母(在单词中的任何位置)。示例:如果输入为hello 123 worLD,则唯一匹配应为worLD。
我尝试像这样使用积极的前瞻:
echo "hello 123 worLD" | grep -oP "(?=.*[a-z])(?=.*[A-Z])[a-zA-Z]+"
hello
这是不正确的:唯一的匹配是hello 而不是worLD。然后我尝试了这个:
echo "hello 123 worLD" | grep -oP "\K((?=.*[a-z])(?=.*[A-Z])[a-zA-Z]+)"
hello
worLD
这仍然不正确:hello 不应匹配。
【问题讨论】:
标签: regex grep regex-lookarounds