2023 © RegexOne
メール | Twitter
これまで、テキスト全体の一部に部分的に一致する正規表現を書いてきました。しかし、これは常に望ましいとは限りません。例えば、ログファイル内で「success」という単語に一致させたいとしましょう。「Error: unsuccessful operation」という行にも一致して欲しくありませんよね!そのため、現実世界のテキストと照合する際に誤検知が発生しないように、できるだけ具体的な正規表現を書くことがベストプラクティスです。
パターンを厳密にする1つの方法は、特別な^(ハット)と$(ドル記号)メタ文字を使用して、行頭と行末の両方を記述するパターンを定義することです。上記の例では、^successというパターンを使用して、「success」という単語で始まる行のみに一致させることができます。「Error: unsuccessful operation」という行には一致しません。ハットとドル記号の両方を組み合わせると、行頭と行末の両方で完全に一致するパターンを作成できます。
これは、文字を除外するためにブラケットのセット[^...]内で使用されるハットとは異なることに注意してください。正規表現を読む際には混乱を招く可能性があります。
これらの新しい特殊文字を使用して、以下の各文字列に一致させてみてください。
| 課題 | テキスト | |
| 一致 | Mission: successful | ![]() |
| スキップ | Last Mission: unsuccessful | ![]() |
| スキップ | Next Mission: successful upon capture of target | ![]() |
| 解答 | 式「Mission: successful」はテキスト内のどこにでも一致するため、'Mission'で始まり'successful'で終わる完全な文字列のみに一致させるには、 |