如何使用RE获取用户名? 例如:
User: john_smith
User john_smith
User john_smith
我需要抓住约翰史密斯
我试过这个[ \t]+(User)?[: \t]*([.]+)
但无法让它发挥作用。
有人可以帮忙吗?
答案 0 :(得分:3)
尝试这样的事情:
/User:?\s*(\S+)/
在postgres中,它会是这样的:
substring('User: john_smith' from 'User:?\s*(\S+)')
答案 1 :(得分:1)
尝试不使用前导[ \t]+
,这意味着'至少一个'。或者使用[ \t]*
表示'尽可能多,也许为零'。
“用户”一词看起来不可选,请继续使用User[: \t]*
。点是一个小丑,匹配每个角色。
因此将它包含在一个组中是没有意义的。该组的其余部分变得毫无意义,并且它没有添加任何内容。因此,组中的点表示文字点。请改为使用点:(.+)
[ \t]*User[: \t]*(.+)