質問

何かの正規表現パターンのためのDateTime(2008-09-01 12:35:45)?

取得しこのエラー:

どんなに区切り文字'^'見つかり

利用:

preg_match('(?n:^(?=\d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(?(.0?2)(?=.{3,4}(1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00))|0?[1-9]|1\d|2[0-8])(?<sep>[/.-])(?<month>0?[1-9]|1[012])\2(?<year>(1[6-9]|[2-9]\d)\d{2})(?:(?=\x20\d)\x20|$))?(?<time>((0?[1-9]|1[012])(:[0-5]\d){0,2}(?i:\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$)', '2008-09-01 12:35:45');

えてこのエラー:

警告:preg_matchす。め馴染ませ-試合]:作成に失敗した:も繰り返しオフセット0E:\www\index.php イ19

役に立ちましたか?

解決

@エスポー:いと言うことで正規表現が素晴らしいですよね。僕て、コードを書くかった何かと便利に試合などは含まれておりませんが、実際に見日時、ユーザー入力.

そうでトムソリューションがtenable、このzillion回より簡単に参加しており、一括弧で簡単に取得することで価値を、ユーザー入力:

(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})

を使用している場合、perlきますので、その価値観に行うようになります:

$year = $1;
$month = $2;
$day = $3;
$hour = $4;
$minute = $5;
$second = $6;

その他の言語において同様の能力です。が必要になりますのでご注意く一部に軽微な改造に正規表現したい場合は受け入れるなど、数ヶ月です。

他のヒント

簡単なるバージョンの形式で記がないのり@Espos:

(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) 

http://regexlib.com/REDetails.aspx?regexp_id=610

^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30/29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$


この再検証の両日 倍ます。日月も 検証済みのうるう年です。日時:に dd/mm/yyyy d/m/yyト 1/1/1600-31/12/9999.先頭にゼロ は任意となっております。日時セパレータで どちらかマッチングダッシュ(-),スラッシュ(/) または期間(.) 時間:にhh:MM:ss 午前-午後12時間のフォーマット(12:00- 11:59:59PM)またはhh:MM:ss軍事時間 形式(00:00:00 - 23:59:59).12 時間の時刻のフォーマット:1となっている場合があり、 先頭のゼロの時間です。2)分 および秒はオプションのための12 時間表3)AMまたはPMが必要 および大文字と小文字が区別されます。軍事時間1) ば先頭のゼロのためのすべての時間 10未満。2)分 manditory.3)秒は任意となっております。Datetimes:組み合わせの上 フォーマット日が初めて目に時間 で区切られた空間です。ex)dd/mm/yyyy hh:MM:ss


編集:ただくにはコピーし、RegExのregexlib.com ウェブサイトStackOverflow時に削除/破壊特殊文字数.

^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1]))$|^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$
$date = "2014-04-01 12:00:00";

preg_match('/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/',$date, $matches);

print_r($matches);

$ップ:

Array ( 
   [0] => 2014-04-01 12:00:00 
   [1] => 2014 
   [2] => 04 
   [3] => 01 
   [4] => 12 
   [5] => 00 
   [6] => 00
)

簡単に破datetime formated文字列になります。

に関するImranか月1 2008年12:33 が欠のパターン 正しいパターン

preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', '2008-09-01 12:35:45', $m1);
print_r( $m1 );
preg_match('/\d{4}-\d{2}-\d{2} \d{1,2}:\d{2}:\d{2}/', '2008-09-01 12:35:45', $m2);
print_r( $m2 );
preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', '2008-09-01 12:35:45', $m3);
print_r( $m3 );

返されます

Array ( [0] => 2008-09-01 12:35:45 )
Array ( [0] => 2008-09-01 12:35:45 )
Array ( [0] => 2008-09-01 12:35:45 ) 

こちらは自液

/^(2[0-9]{3})-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0123])\:([012345][0-9])\:([012345][0-9])$/u

私を変更した正規表現パターンから http://regexlib.com/REDetails.aspx?regexp_id=610.以下のパターン一致す。

^(?=\d)(?:(?:1[6-9]|[2-9]\d)?\d\d([-.\/])(?:1[012]|0?[1-9])\1(?:31(?<!.(?:0[2469]|11))|(?:30|29)(?<!.02)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$

YYYY-MM-DD HH:MM:SS

PHPめ馴染ませ機能のニーズにおregexに包まれるとの区切り文字キャラクターにすることはできます。使用できませんこの区切り文字を避けないのregex.この作業(区切り文字/):

preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', '2008-09-01 12:35:45');

// or this, to allow matching 0:00:00 time too.
preg_match('/\d{4}-\d{2}-\d{2} \d{1,2}:\d{2}:\d{2}/', '2008-09-01 12:35:45');

が必要な場合は試合ラインのみのdatetime、追加、^および$をその場合には、regex.

preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', '2008-09-01 12:35:45');

リンクPHPマニュアルのpreg_match()

ここでは簡易版(発祥の地からのエスポーの解答).をチェックするだけであるため、正確性の日(閏年)、hh:mm:ssはオプション
例と作品:
- 31/12/2003 11:59:59
- 29-2-2004

^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d(?:(?=\x20\d)\x20|$))(|([01]\d|2[0-3])(:[0-5]\d){1,2})?$

こちらは自液

[12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]) ([01][0-9]|2[0-3]):[0-5]\d

Regular expression visualization

Debuggexデモ

https://regex101.com/r/lbthaT/4

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top