単語[a-zA-Z]+
を1つの制約で抽出しようとしています。単語には、少なくとも1つの小文字と少なくとも1つの大文字が含まれていなければなりません言葉)。例:入力がhello 123 worLD
の場合、唯一の一致はworLD
です。少なくとも1つの小文字と少なくとも1つの大文字を一致させる
は、私はこのような肯定先読みを使用しようとしました:
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
が一致すべきではありません。