0

SAS Content Categorization Studio で作業しています。多数の一致を返すために、それぞれ 1 つの正規表現で構成される 2 つの概念を取得しようとしています。1 つは日付を検索するためのもので、もう 1 つは特別にフォーマットされた数値を検索するためのものです。

(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](?:[0-9]{2})?[0-9]{2}

[1-9](?:(?:[ -.])?\d){10,10}

書式設定された数値を検索する正規表現 (後者) は、日付を検索する正規表現 (前者) がアクティブであるかコメントアウトされていない限り、ヒットを返しません。日付の正規表現をコメントアウトするとすぐに、後者は再び機能し続けます。それらは相互に排他的であるようです。誰が私が間違っているのか教えてもらえますか?

4

1 に答える 1

0

最後のパターン(?:(?:[ -.])?\d){10,10}が日付一致部分である場合、私には少しずれているようです. 一致しているように見えるのは、「一部のオプション文字 (文字通り「.」のため何でも) の後に数字が続く」の 10 回の繰り返しです。まず、日付に一致させるために 10 回ではなく 8 回の繰り返しが必要なようです。しかし、あなたが本当に欲しいのはのようなものだと思います\d{1,2}([\.-])\d{1,2}\1\d{4}。これは、「1 桁または 2 桁の後にリテラル . または - が続き、さらに 1 桁または 2 桁の数字が続き、その後に前に一致した任意の特殊文字 (. または -) が続き、4 桁の数字が続く」に一致します。

于 2013-03-12T19:18:11.407 に答える