3

大きな段落があり、その中に次のような単語があるとしますfound field failed fired killed(私が知っている否定的な単語がたくさんあります!! )

ここで、 orで始まりorで終わる単語を 含む行を取得したいfi hik elded

文字列内の単語のこのパターンを検索するにはどうすればよいでしょうか....??

文字列パターンではなく、文字列内の単語パターンについて質問していることを確認してください

これらの2つは確かに機能しませんでした

egrep "^(f[ai]|k)+(eld|ed)$"

egrep "\<(f|k)+(eld|ed)$\>"

私はregex基本的な理解からそれを行っているので、より良い方法を提案してくれる人は誰でも(いくつかの説明とともに)大歓迎です!! :)

4

3 に答える 3

3

おそらく探している正規表現は

"\b([fh]i|k)\w*(eld|ed)\b"

\w*と同等である必要がある[a-zA-Z0-9_]*ため、要求された文字列の間に任意の単語のような文字を含めることができます。

\b、単語が実際に必要な文字で始まり、文字で終わることを確認するためにあります。それ以外の場合は、たとえば単語を含む文字列に一致する可能性がありますUnfailed

また、行末と行頭を意味するため、正規表現から$andを削除する必要があります。^$^

于 2014-02-18T12:17:09.477 に答える
1

単語境界を使用できます\b

^.*\b(fi|hi|k)\w*(eld|ed)\b.*$
   ------------------------

このパターンは、それらの単語を含む行を選択します

m:複数行修飾子とグローバル修飾子を使用する必要がありますg

ここで試してみてください

于 2014-02-18T12:15:34.677 に答える