diff --git a/src/experimental/parser/user.nim b/src/experimental/parser/user.nim index dc760f0..715c9a9 100644 --- a/src/experimental/parser/user.nim +++ b/src/experimental/parser/user.nim @@ -1,14 +1,14 @@ -import std/[algorithm, unicode, re, strutils, strformat, options] +import std/[algorithm, unicode, re, strutils, strformat, options, nre] import jsony import utils, slices import ../types/user as userType from ../../types import User, Error let - unRegex = re"(^|[^A-z0-9-_./?])@([A-z0-9_]{1,15})" + unRegex = re.re"(^|[^A-z0-9-_./?])@([A-z0-9_]{1,15})" unReplace = "$1@$2" - htRegex = re"(^|[^\w-_./?])([##$])([\w_]+)" + htRegex = nre.re"""(*U)(^|[^\w-_.?])([##$])([\w_]*+)(?!|">|#)""" htReplace = "$1$2$3" proc expandUserEntities(user: var User; raw: RawUser) = @@ -29,7 +29,7 @@ proc expandUserEntities(user: var User; raw: RawUser) = user.bio = orig.replacedWith(replacements, 0 .. orig.len) .replacef(unRegex, unReplace) - .replacef(htRegex, htReplace) + .replace(htRegex, htReplace) proc getBanner(user: RawUser): string = if user.profileBannerUrl.len > 0: