パターンの文字列があります{{開始日| 2005 | 8 | 29}} 今私は2005,8,99を3つの別個の要素として抽出したいと思います。 私はregexpを使用しました:re.findall( '([0-9])+'、str) これは2005,8,9の代わりに私に5,8,9を与えています 検索方法を試したときに同じパターンを使用していますre.search( '([0-9])+'、str).group() 私は2005年の最初の要素を得ました。 なぜこれら2つのメソッドの出力に違いがありますか?いつ私の現在の日付パターンの正規表現にする必要がありますか?正規表現パターンfindallと同じ理由で別の理由を与える検索
0
A
答えて
1
短いストーリー:'([0-9]+)'
を意味し、'([0-9])+'
ではありません。
詳細:すべてのペアのペアがグループを決定します。一致する単一の試行でグループが複数回キャプチャされた場合、最後のキャプチャだけが報告されます。あなたは、文字列に対して、この再呼び出したとき([0-9])
部分は、その後、その後、その後、'5'
'0'
'0'
'2'
に一致したので、それはもはや一致しませんでした前に、特に
は、それは、最初に行くラウンドに"2005"
のすべてを一致しました。したがって、それは"2005"
のすべてにマッチしましたが、グループ自体は、そのサブ表現の最終一致を報告しただけです:'5'
。
比較すると、後でグループメソッドでre.search
を試しました。 groupメソッドは、と一致する部分文字列を返します。、not the first groupの正規表現全体を返します。それで、それは"2005"
のすべてを返しました。代わりに.group(1)
に電話してみてください。
関連する問題
- 1. 正規表現を覚えようとしていた理由
- 2. 検索に別の検索サーバーが必要な理由
- 3. Googleのウェブサイトの検索エンジンを使用する理由とその理由
- 4. Pythonの正規表現のfindAllとマルチ
- 5. yaccの規則とまったく同じシンボルの理由は?
- 6. 正規表現でのUmlauts(ロケール経由)
- 7. それは私にコンパイルエラーを与える理由:それは私にコンパイルエラーを与える理由DeclareStuff
- 8. 正規表現検索ヘルプ
- 9. 正規表現検索エンジン
- 10. Java正規表現の別のパターン
- 11. 正規表現の論理
- 12. NSTextFinderと正規表現の検索
- 13. 検証:理由
- 14. (正規表現パターン)
- 15. 正規表現パターン
- 16. 正規表現 - 検索と置換
- 17. カテゴリマッチング - 正規表現と全文検索
- 18. VIM検索と置換正規表現
- 19. ビジュアルスタジオでの正規表現の検索
- 20. 検索の正規表現とCalcの置き換え
- 21. 理解正規表現表現
- 22. 正規表現パターン置き換え* .xml
- 23. vimで正規表現を検索
- 24. 正規表現でコードを検索
- 25. 正規表現でテキストを検索
- 26. Eclipse、正規表現の検索と置き換え
- 27. は、与えられた正規表現
- 28. ルビーでの正規表現の処理
- 29. 正規表現を理解する
- 30. WOW64プロセスでCreateEnvironmentBlockが私にPROCESSOR_ARCHITECTURE = AMD64を与える理由