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/
.
精彩评论