7

私は自動生成された正規表現を持っています。これは基本的に次のような1つの大きな「または」グループです。

(\bthe\b|\bcat\b|\bin\b|\bhat\.\b|\bhat\b)

私はその場合に気づきました

hat.

「帽子」ではなく、「帽子」のみに一致します。私が望むように。それをもっと貪欲にする方法はありますか?

更新:単語の境界を忘れてしまい、申し訳ありません。

4

1 に答える 1

11

正規表現のhat\.前に置きます。hat交互の最初の一致する式が勝ちます。hat一致hat.するため、hat\.チェックされることはありません。

hat\.?より良い方法は、その部分をではなくとして書くことですhat\.|hat。これにより、期間がオプションになるため、交互に2つの用語を使用する必要はありません。

編集後:

.と、たとえばスペースの間に単語の境界はありません(どちらも単語以外の文字です)。したがって、ピリオドの直後に別の文字が続く場合\bhat\.\bにのみ一致します。hat.xこれは、たとえば文でhatは、一致するものになることを意味します。しかし、あなたは解決策を見つけたようです。

于 2012-04-09T03:17:06.270 に答える