bryan sammon
bryan sammon

Reputation: 7441

php regex or | operator

I am doing a preg_replace:

$pattern = '/<ul>/';
$replacement = "";
$string = "hello <ul> how are you doing </ul>";
echo preg_replace($pattern, $replacement, $string);

That will replace my <ul> with "" but Id like to replace anything that is a <ul> or </ul>, I am not getting how to use the | (or) character though.

I try like this, but it is not working right:

$pattern = '/<ul>|</ul>/';
$replacement = "";
$string = "hello <ul> how are you doing </ul>";
echo preg_replace($pattern, $replacement, $string);

Any help would be surely appreciated

Thanks, Bryan

Upvotes: 10

Views: 41011

Answers (2)

Byron Whitlock
Byron Whitlock

Reputation: 53911

You have to escape the backslash.

/<ul>|<\/ul>/

Upvotes: 2

Satya
Satya

Reputation: 4478

You may need to escape the slash in /ul like this:

$pattern = '/<ul>|<\/ul>/';

or do this, not sure if it'll work:

$pattern = '/<\/?ul>/';

(the '?' means zero or one of the previous characters, which is '/' in this case.)

Upvotes: 20

Related Questions