how to filter certain files with a particular content

i wanted to make a filter on the field title. i want to get all titles with a simple bracket at the end of the title , so that i can remove it with a single step with the code regexp (.+?)

example--original---Aretho Vaeerna (RedMaza.CoM)

result should be-----Aretho Vaeerna

I tried the following with no results. kindly help


%title% MATCHES "\s([^(]+)$"

MATCHES is regex version of HAS so you may as well use that instead.

Also place a $ at the end and \s at the start of the regular exp like (to better match your example):

will only find strings with the ) at the end and space before (.

An even better example would be to use:

Your reg exp (.+?) changes:
Lapacha (Original Live Mix) (Live) >>> Lapacha

whereas \s([^(]+)$ would change:
Lapacha (Original Live Mix) (Live) >>> Lapacha (Original Live Mix)

Yours is a non gready expression but you still need [^(]+ to check for anything that doesn't contain a (

Hope this makes sense.

thanks for the suggestion.

Operators for filters have to be written in CAPITALS.
To filter for TITLE with ) at the end try:
%title% MATCHES ")$"

if you want to filter for the last pair of brackets in a string, then check stevehero's post again as he mentioned these expressions already.

Sorry, i haven't done the filter before. i pressed F3 and got filter at the bottom of the mp3tag. there i entered the code as suggested by you. then .. what... should i do? I pressed enter. nothing happen. what should i do to get the filtered result?

Sorry, i haven't done the filter before. i pressed F3 and got filter at the bottom of the mp3tag. there i entered the code as suggested by you. then .. what... should i do? I pressed enter. nothing happen. what should i do to get the filtered result?

YES. i have got it. there is some mistake in your code. it does not work whereas the one suggested by steoyehero is working %title% MATCHES "\s([^(]+)$" when i enter the code in the filter field i got the respective records.
%title% MATCHES "\s([^(]+)$"

%_bitrate% GREATER 180
this also produces the result.

My suggestion is is to use a filter the exact same as your regular expression.

That way you activate the filter and the same reg expression that can be used for the replace. This way you get a complete view of all the files you're about to affect.

No point using a filter when it doesn't truly reflect the changes you're about to make.

The problem with the one ohrenkino posted was it needed a backslash before the (. As ( is used for something else in reg exp you need the \ to tell it that it's a (

%title% MATCHES ")$"

This works but I wouldn't recommend this as you'll be using a different reg expresion in your action.

thanks a lot .

may i ask you another example's solution?
I have some files with the following second part.

Vrellrli Ksnneam

the second part starts with ::

i want to find out all records like this using the filter feature. i tried the following with no result.


help pls

That filter string reads: space, escaped colon, colon, start of range, start of field, escaped colon colon to end of range, repeat that range, escaped colon, colon, end of field
Does that make sense?

What about
%title% MATCHES "\s:.+:$"
%title% HAS ::

thank you very much.I have no knowledge about the string components.
i have framed the filter string from Steveheor's previous example to find out brackets.

Now you have given two filter strings. both of them serve my purpose.

Think of regular expressions as something that compliments the string of text.

Each part has it's function,
These are just some examples.:

( matches (
) matches )
d matches d
f matches f
[a-z] matches any character from a to z
. matches any character
. matches a .

  • is a delimiter which is added to d for example, so d+ matches any number of d's one after each other.

and so on and so on. It's not difficult. Go to a regular expression website and test the reg exp there on a piece of text string.

If something doesn't work like ( or other characters, then 100% of the time it needs a \ before it. As you can see + has a different function in reg exp so + is needed to find a + in a text string.

Thanks a lot for the explanation.pls have a look at this

I have to get the records where the artist filed is empty. I tried out this code without a result. help pls.In the filter string

%_artist% MATCHES "EMPTY"

^ matches the beginning of a string
$ matches end

If you combine those you get viola matches an empty string.


%_artist% MATCHES "^$"

I like your attempt! Very optimistic! ;]

I urge you to read this.


is what you're after.

thanks a lot for the the meantime. I googled and got this link. it says to use ^$.

I tried %_artist% MATCHES "^$" with no result. then i checked your suggestion. it also did not work. then I removed the underscore before the field name %artist% MATCHES "^$" and it worked!

yes, I just copied your original string and missed that.

Now pls have a look at this. I have to find records with titles in the length of 30 to 40 characters including spaces between words. how to do that. i tried this but failed to get result.

%title% MATCHES "^[A-Za-z0-9\S+]{30.40}$"

btw what to do if i want to see the latest post as first when i open the topic in mp3tag forum

"$ifgreater($len(%title%),30,yes,no)" IS yes AND "$if($less($len(%title%),40),yes,no)" IS yes

Filter: TITLE MATCHES "^.{30,40}$"
... or ...
Filter: ("$len(%TITLE%)" GREATER 29) AND ("$len(%TITLE%)" LESS 41)