Jump to content

Regex not matching spaces.


dotancohen

Recommended Posts

I'm parsing a body of text for tags that use square brackets to identify themselves, like BBCode. These tags may contain alphanumeric characters, spaces, apostrophes, underscores, dashes, basic punctuation, and pipes. The closest that I've been able to come up with is:
[code]
$text=preg_replace_callback('/\[([A-Za-z0-9\¦\'.-:underscore:]+)\]/i' , "findLinks", $text);
[/code]

However, this does not match spaces for some odd reason (the "." should match them, I think). I've added "\s", "\w", " ", and ":space:" to the regex (tried both before the A-Z and after the 0-9) but for whatever reason those spaces are not detected. Why? What must I do?

I'm certain that what I think is a space is most certainly a space. str_replace(" ", "", $text); closes the spaces, so I know that php does in fact see it as a space.

I'm on php 5.x if it's relevant. Thanks in advance for any assistance.

Dotan Cohen

http://what-is-what.com
Link to comment
Share on other sites

Inside a character class a hyphen is a metacharacter that creates a range. I'm guess that[tt] .-: [/tt]is being processed as "the characters from period to colon" instead of "a period, a hyphen, a colon." It's recommended that if you want to match a hyphen, that it be the first character in the class. Where did[tt] :underscore: [/tt]come from?
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.