开发者

Regex to Match White Space or End of String

I'm trying to find every instance of @username in comment text and replace it with a link. Here's my PHP so far:

$comment = preg_replace('/@(.+?)\s/', '<a href="/users/${1}/">@${1}</a>开发者_如何学编程; ', $comment);

The only problem is the regex is dependent upon there being whitespace after the @username reference. Can anyone help me tweak this so it will also match if it is at the end of the string?


To detect whitespace or end of string, you would use: /@(.+?)(?=\s|$)/, but unless your usernames contain non-alphanumeric characters, it's simpler to use the \w for word character or \b for word break, i.e.: /@(.+?)\b/ or /@(\w)+/.


try /@(\w+)/ instead of /@(.+?)\s/.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜