如何匹配特殊字符中包含的用户名

时间:2016-11-24 00:52:07

标签: regex

我尝试匹配特定字段YouNow上的用户的用户名。

我提取了这个html,我尝试提取用户名 _You Won

(\d+)[\\n\\t]+([\W\w]+[^\\n\\t"$])

这是我的正则表达式尝试:

t

这很好用,首先我匹配一个级别的数字,然后我匹配用户名。但是,如果用户名以n或{{1}}结尾,则不会收到最后一个字母。因此用户游戏1n 会被削减为游戏1

有人知道如何正确获取用户名吗?

播放: https://regex101.com/r/j8rufa/2

1 个答案:

答案 0 :(得分:1)

您最后可以使用正向前瞻,而不是[^\\n\\t"$]

您的代码将是:

(\d+)[\\nt]+([\W\w]+(?=\\n\\t))

演示:https://regex101.com/r/j8rufa/4

您还可以使用Positive Lookbehind进一步增强代码,以确保匹配整个名称。例如,如果名称类似t_You Won,则匹配时不会出现任何问题:

(\d+)[\\nt]+(?<=\\t)([\W\w]+(?=\\n\\t))

演示:https://regex101.com/r/j8rufa/6