次の形式の日付と時刻を持つ文字列を読み取るのに苦労しています。
YYYYMMDDHHmmSS.FFFF[+|-]ZZzz
YYYY
年です、MM
月(01から12から開始)、DD
日(01-31)、HH
時間(00-23)、mm
分(00-59)、SS
2番目(00-59)、FFFF
秒の分数(0000-9999)であり、ZZzz
は、協定世界時(UTC)からの時間(ZZ – + 14から–12の値)と分(zz –値00から59)の差です。
これはHL7で日時情報を転送するための標準ですが、心配する必要はありません。私が抱えている問題は、この標準用に作成した正規表現を処理するシステムが、2番目のフィールドの後にドットを追加することを拒否していることです。また、ZZフィールドの前のプラスまたはマイナスは許可されません。
これが私が書いた正規表現です:
/^(1|2)\\d{3}(0[1-9]|1[0-2])(0[1-9]|(1|2)[0-9]|3(0|1))((0|1)[0-9]|2[0-3])[0-5][0-9][0-5][0-9]\\.\\d{4}((\\+|\\-)0[0-9]|\\-1[0-2]|\\+1[0-4])[0-5][0-9]$/
Limesurveyの場合、特定の質問の検証フィールドの場合。それが何であるかわからない場合は、その正規表現がPerlの規則を使用していることを知っておいてください。
\。または\+\-を削除すると、正常に機能することに注意してください(ただし、正規表現は標準を適用しなくなります)。また、バックスラッシュをエスケープしないようにしましたが、それでも何も起こりません。
なぜこれが機能しないのか誰かが指摘できれば、私はそれをいただければ幸いです。正規表現で奇妙または冗長に見えるものがある場合は、読みやすくするために論理的にさまざまなフィールドに分割している可能性が高いことに注意してください。