Replace US date format

Dear all,
I'd like to batch replace the following (all in TITLE)

title (11/5/79)


title (5NOV1979)

I do not want to have all title names with the same date BUT I want mp3tag to ''recognize'' the respective date.

I tried


ok so far as a first compromise

But: I still fail to include to replace $1 with the respective month in uppercase letters

and I fail to omit the separating dots

In other words: I would like to convert

title (m/dd/yy)


title (ddMMM19yy)


to go from
title (11/5/79)
title (5NOV1979)

Thanks in advance for your help!

You could try:
$replace($regexp(title (11/5/79),(.*?) \((\d+)/(\d+)/(\d+)\),$1 ($3==$2==19$4)),==11==,NOV,==12==,DEC)
You would have to complete the list of months.

Dear ohrenkino

Thanks a lot for your prompt reply!

I've tried the following via [Konverter -> tag-tag -> Field: TITLE -> format string]:

$replace($regexp(%TITLE%,(.*?)((\d+)/(\d+)/(\d+)),$1 ($3==$2==19$4)),==1==,JAN,==2==,FEB,==3==,MAR,==4==,APR,==5==,MAY,==6==,JUN,==7==,JUL,==8==,AUG,==9==,SEP,==10==,OCT,==11==,NOV,==12==,DEC)

Now, I have any %TITLE% given. OK. But the date won't fix. Where is my mistake? What did I not see?


If you try the string with your sample title - does it work?
I tried it only with your example, so it should.
If you find that also, great. If not, you would have to see where the difference is.
And then you have to see what the real data in TITLE looks like ...

The expression should be:
$replace($regexp(%TITLE%,(.*?)\((\d+)/(\d+)/(\d+)\),$1 ($3==$2==19$4)),==1==,JAN,==2==,FEB,==3==,MAR,==4==,APR,==5==,MAY,==6==,JUN,==7==,JUL,==8==,AUG,==9==,SEP,==10==,OCT,==11==,NOV,==12==,DEC)

Dear ohrenkino


E.g. I have the following title:

I Know (4/25/79 Version)

and I want to convert that title to

I Know (25APR1979 Version)

That's all.
But there are other titles in my collection with different song names and different dates.
So I like to find a solution that does the whole batch with different dates as input and the specific dates as output.

I have:
I Know A Lot (5/25/79 Version)
I Do Know (4/14/79 Version)
I Know Not (4/8/79 Version)

And I'd like to have as a result:

I Know A Lot (25MAY1979 Version)
I Do Know (14APR1979 Version)
I Know Not (8APR1979 Version)

with one command.

Thank you very much!


You have the word "Version" inside the brackets. That is a different pattern to just the date.

Unfortunately your last command suggestion doesn't give me the desired results.

Sorry. I did not mention this.

So add "Version" to the pattern inside the brackets and it should work.

$replace($regexp(I Know (4/25/79 Version),(.*?)\((\d+)/(\d+)/(\d+) Version\),$1 ($3==$2==19$4 Version)),==1==,JAN,==2==,FEB,==3==,MAR,==4==,APR,==5==,MAY,==6==,JUN,==7==,JUL,==8==,AUG,==9==,SEP,==10==,OCT,==11==,NOV,==12==,DEC)

Dear ohrenkino

Thanks a lot for your help!

I modified your suggestion a little:

$replace($regexp(%TITLE%,(.*?)((\d+)/(\d+)/(\d+) Version),$1 ($3==$2==19$4 Version)),==1==,JAN,==2==,FEB,==3==,MAR,==4==,APR,==5==,MAY,==6==,JUN,==7==,JUL,==8==,AUG,==9==,SEP,==10==,OCT,==11==,NOV,==12==,DEC)

Now I am very close to what I want. Sometimes there is version in brackets and sometimes not. So I am looking for a insignificantly broader solution.

With my last shown code (the small modification of your code (I put %TITLE% instead of the real song name part and I omitted the following bracket) but it works quite well as I get:

(with the original filename which was:)

I Know I'm Not Wrong (8/13/79 Version)

I apply the last code and I get:

I Know I'm Not Wrong (13AUG1979 Version)

So the date part has been taken care of thanks to you!
There are two spaces between the song name and the opening bracket.
I would like to have one only there.

And then I'd like to have a broader command where it doesn't matter if there are letters after the date or not.
Maybe there is a fill argument for ignoring the rest to come inside the brackets?
Thanks a lot!

There a

You could try:
$replace($regexp(I Know (4/25/79 Version),(.*?)\((\d+)/(\d+)/(\d+.*)\),$1 ($3==$2==19$4)),==1==,JAN,==2==,FEB,==3==,MAR,==4==,APR,==5==,MAY,==6==,JUN,==7==,JUL,==8==,AUG,==9==,SEP,==10==,OCT,==11==,NOV,==12==,DEC)

I am sorry: above was a backslash missing between ''(.*?)'' and ''((\d+)''

the following code was the one that brought me close:

$replace($regexp(%TITLE%,(.*?)((\d+)/(\d+)/(\d+) Version),$1 ($3==$2==19$4 Version)),==1==,JAN,==2==,FEB,==3==,MAR,==4==,APR,==5==,MAY,==6==,JUN,==7==,JUL,==8==,AUG,==9==,SEP,==10==,OCT,==11==,NOV,==12==,DEC)

but only where it has ''version'' in it (inside the brackets).

Thank you very very much!

Sorry, but I am a little confused. Maybe when I copy paste, this web page doesn't accept my backslashes.
It is omitted anew.

Thanks anyway!

You have to enclose the code in the grave accent (Top left to bottom right)


I am very close with this last code.

Now I can have any word before the date in the brackets and any word after the date in the brackets.

BUT: It nevertheless repeats the old format date and right after puts the new formatted date behind in brackets.


[Old song name:]
Tusk (Stage Riff; 1/30/79 Demo)

[New song name:]
Tusk (Stage Riff; 1/30/79(30JAN1979) Demo)

Now I just have to get rid of the first old formatted date part and the brackets around the newly formatted date.


Why don't you copy my suggestions and work with them?
The suggestion in #11

already took care of extra text behind the date.

Dear ohrenkino

I think I have the solution:


Now I can have anything inside the brackets to the left or to the right of the date.



This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.