我想提取包含至少一个小写字母和至少一个大写字母(可以位于单词的任何位置)的单词[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
。