我尝试匹配特定字段YouNow上的用户的用户名。
我提取了这个html,我尝试提取用户名 _You Won
(\d+)[\\n\\t]+([\W\w]+[^\\n\\t"$])
这是我的正则表达式尝试:
t
这很好用,首先我匹配一个级别的数字,然后我匹配用户名。但是,如果用户名以n
或{{1}}结尾,则不会收到最后一个字母。因此用户游戏1n 会被削减为游戏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))