0

正規表現を使用して、完全な日付文字列を表す文字列 (スペイン語で記述) を検証する必要があります...実際の文字列が有効な日付 (閏年など) であるかどうかを検証する必要はありません。

文字列は次のようになります。

23 de septiembre del 2003

23 de septiembre de 1965

年が 2000 年よりも大きい場合、単語「del」が年の前に使用され、そうでない場合、単語「de」が使用されます...

私は調査を行い、最初の2桁を取得する方法を見つけました:

$pattern = ([0-9]+);

..それから私はそれをすべてまとめる方法に迷いました...

ヘルプ !

4

1 に答える 1

2
/\b\d{1,2} de [a-z]+ (de 1\d{3}|del 2\d{3})/i

説明:

\b              ... requires a word boundary, since the following character is a digit
                    (and thus a word character) this will only match if the date is
                    preceded by a character that is not a letter, not a digit and
                    not an underscore
\d{1,2}         ... one or two digits
de              ... literally "de"
[a-z]+          ... any letter from a-z, at least once but an arbitrary number of times
(de 1\d{3}      ... literally "de" followed by "1" and 3 more digits
|               ... or
del 2\d{3})     ... literally "del" followed by "2" and 3 more digits

i               ... make the whole thing case-insensitive (you can omit this if needed)

また、正規表現内のすべてのスペースは、他の文字と同様に扱われることに注意してください。

または、代わりに、[a-z]+次のような有効な月のリストを指定できます

/\b\d{1,2} de (...|septiembre|...) (de 1\d{3}|del 2\d{3})/i

(... をさらに月の名前に置き換えて、|それらを区切ってください)

于 2012-09-25T21:13:04.180 に答える