0

次のような文字列があり、最初の 2 つの出現のみをwith2005:10:29 12:23:53に置き換えたい:-

期待される結果2005-10-29 12:23:53

編集:

元の魔女krenameを編集/フォーマットすることはできませんが、不要なフォーマットを返しますが、文字列を後処理する必要があります。[exifExif.Image.DateTime]2005:10:29 12:23:53Find and Replace

(?<=\d{4}):|:(?=\d{2}\s)rubularで仕事をしますが、KDE ​​ではしません :(

もっと多くの解決策があると確信しています。

編集:

:(?=\d{2}:\d{2}\s)|:(?=\d{2}\s)KDE でも動く

読んだ後、この解決策を見つけました

You can use a full-fledged regular expression inside the lookahead.
Most regular expression engines only allow literal characters and
alternation inside lookbehind, since they cannot apply regular
expression backwards.

正規表現のチュートリアルで

4

4 に答える 4

3

Ruby では、scibuff が示唆するように、おそらく正規表現を使用しない方がよいでしょう。

require 'date'
date = DateTime.parse("2005:10:29 12:23:53", "%Y:%m:%d %H:%M:%S")
date.strftime("%Y-%m-%d %H:%M:%S")
于 2012-03-22T10:17:13.483 に答える
1

JavaScript:

バージョン 1

str = str.split(' ')[0].replace(/\:/g,'-')+' '+str.split(' ')[1]

バージョン 2

str = str.replace(/(\d{4}):(\d{2}):(\d{2})(.*)/,"$1-$2-$3 $4")

デモ

于 2012-03-22T10:08:26.630 に答える
-1

replace()2 回呼び出すだけです。

"2005:10:29 12:23:53".replace(/:/,'-').replace(/:/,'-')
于 2012-03-22T10:30:51.927 に答える
-1

もう一度正規表現を使用して、よりシンプルでエレガントで効率的な方法で達成できるものを探します

var date = new Date('2005:10:29 12:23:53');

date次に、それに応じてフォーマットします。

function formatDate( date ){

    return date.getFullYear() + '-' + ( get.getMonth() + 1 ) + '-' + ... ;

}
于 2012-03-22T10:09:47.060 に答える