3

フレーズを解析して一般的な単語を除外しようとしています。

たとえば、「as the world turns」というフレーズでは、一般的な単語「as」と「the」を除外して、「world」と「turns」のみを返したいと考えています。

(\w+(?!the|as))

うまくいきません。フィードバックをお待ちしております。

4

2 に答える 2

2

先読みが最初に来るべきです:

(\b(?!(the|as)\b)\w+\b)

また、単語全体にのみ一致するように単語境界を追加しました。そうしないと、単語「as」全体には一致しませんが、その単語の文字「s」には一致します。

\wまた、何が一致し、それがニーズを満たしているかどうかを検討することもできます。英語で単語を探している場合、数字ではなく文字に関心がある可能性が\w高く、アポストロフィなど、 によって除外される句読点を含めたい場合があります。代わりに次のようなものを試すことができます ( Rubular ):

/(\b(?!(?:the|as)\b)[a-z'-]+\b)/i

人間の言葉で単語をより正確に照合するには、正規表現の代わりに自然言語解析ライブラリを使用することを検討できます。

于 2010-09-04T19:39:49.790 に答える
1

単語全体にのみ一致するように単語境界を使用する必要があります。先読みアサーションのいずれか:

(\b(?!(?:the|as)\b)\w+\b)

または、後読みアサーションを使用します。

(\b\w+\b(?<!\b(?:the|as)))
于 2010-09-04T19:53:07.210 に答える