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