Howdy All:
I am trying to write a regular expression to basically process dvd titles. For example if I have
The Great Mouse Detectives I would like to display Great Mouse Detectives, The
I have a function that does almost what I need but when there is a special character i.e( .,!@#$%...) it breaks.
A.I. Artificial Intelligence => .I. Artificial Intelligence, A
Is there a way that I can get preg_match to exclude a set of characters after it matches the ‘A’?
preg_match("/\b$needle\b/i", strtolower($haystack))
$needle is ‘a’ or ‘an’ or ‘the’ and $haystack is the original title.
Any help would be awesome!!!
preg_match exclude characters???
Moderator: General Moderators
Artificial Intelligence?
Simple Solution might be
which would match "A Tale of Two Cities" but not "A.I. Artificial Intelligence".
but you can also do a negative lookahead, which is what you are asking:
where $exclude is a character or character class to exclude. If $exclude = "\.", the regex will match "A Tale of Two Cities" but not "A.I. Artificial Intelligence".
Code: Select all
preg_match("/^(a|an|the) /i", strtolower($haystack))but you can also do a negative lookahead, which is what you are asking:
Code: Select all
preg_match("/^(a|an|the)(?!$exclude)/i", strtolower($haystack))