0

この "%d-%m-%Y" のような文字列があります。これらの用語は任意の順序で使用でき、ダッシュは別の文字列(%x) にすることができます。結果を "%d %m %Y" として取得したい。簡単な正規表現を焼きましたが、用語をオプションにするとうまくいきません:(これはクロムコンソールで行います:)

"%d-%m-%Y HH:%i".replace(/.*?((%Y|%m|%d)?.*?(%Y|%m|%d)?.*?(%Y|%m|%d)?).*/, "$1    $2   $3    $4")

これを持っていますか (%Y|%m|%d)? オプションとして .*? で 3 回 (貪欲ではない)それらの間。

上記のコード行を実行すると、出力は次のようになります。

"%d    %d       "

(%Y|%m|%d) からオプションのマーカーを削除すると? その後、式は期待どおりに機能します。これらの用語はオプションにする必要があります。誰かがオプションのマーカーで何が起こっているのかを説明できますか?このタイプの正規表現を実行できますか?

4

1 に答える 1