2012-04-06 6 views
0

正規表現は初めてのため、理解が難しいです。私の足を濡らすために、私はダッシュまたはスラッシュで日付を識別するものを作った。それは次のようになります。正規表現を使用した特定の単純な文字列の検索

\d{1,2}[-/]\d{1,2}[-/](\d{4}|\d{2}) 

私は仮にそれが日付として32-96-2012を受け入れるだろうが、それは大丈夫だから、それは100%正確ではありません実現しています。これは宿題や仕事のためではないので、そうである必要はありません。単純な正規表現を理解したいだけです。

ここで特定の単語を検索する方法を理解したいと思います。私はかなり混乱しています。たとえば、テキスト文書で「soap」または「Tom」という単語を検索したいとします。誰かが簡単な例と説明を投稿できたら、私はそれを感謝します!

+0

質問の最初の部分(再:日付)は、2番目の部分と何が関係していますか?これまでに何を試しましたか? –

答えて

2

シンプル/ソープ/または/トム/それをするでしょう。
詳細http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial

+0

わかりやすい例を見つけるのが難しかったですが、このウェブサイトは素晴らしく、質問の後数分で見つけました。 http://www.gskinner.com/RegExr/ 私は馬鹿げていると感じています。私はこれについて答えてみるつもりです:) – iaacp

1

正規表現は可能な限り読みやすく(信じられているかどうか)判断されます。ですから、もし私が単語soapを使ってテキスト文書を検索したいのであれば、正規表現は "soap"です。

石鹸やトムが必要だったら(?:石鹸|トム)になります。 (?:)エンクロージャは、(?:)エンクロージャの内容をミニ正規表現で扱うことを意味します。 |文字は、または演算子で、左にあるものを意味します。またはそれで、(?:soap | Tom)という単語は、soapという単語またはTomという単語を見つけることを意味します。

代わりに私は石鹸を書くことができませんでしたか?私が "石鹸ボックス"または "トムボックス"を探していたら、石鹸|トムボックスは動作しませんでした。これは石鹸やトムボックスと一致しますが、石鹸ボックスとは一致しません。

最初は分かりにくいですが、グルーピングを探して、実際に探しているものが何であるかを知ることを学びます。

+0

グループの作成を避けたい場合を除き、 '?:'は必要ありません。 - (soap | Tom)はうまくいくでしょう。これについてあなたが理解しているのは、ちょっとだけです。 – bluepnume

+0

@bluepnume、なぜ石鹸やトムを捕まえたいですか?情報を抽出する場合は、グループをキャプチャするほうが意味があります。単純に見つけたら、キャプチャしていないグループを使用することをお勧めします。さらに、これは簡単な説明であり、キャプチャグループを持たないサンプルを提供すると仮定します。これは、キャプチャグループの例よりも高速です。差異が分からない場合です。 – Neil

関連する問題