用regexp抓取用户名

时间:2012-04-27 18:52:00

标签: regex postgresql

如何使用RE获取用户名? 例如:

User: john_smith

User john_smith

User   john_smith

我需要抓住约翰史密斯 我试过这个[ \t]+(User)?[: \t]*([.]+) 但无法让它发挥作用。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

尝试这样的事情:

/User:?\s*(\S+)/

在postgres中,它会是这样的:

substring('User: john_smith' from 'User:?\s*(\S+)')

答案 1 :(得分:1)

尝试不使用前导[ \t]+,这意味着'至少一个'。或者使用[ \t]*表示'尽可能多,也许为零'。

“用户”一词看起来不可选,请继续使用User[: \t]*。点是一个小丑,匹配每个角色。

因此将它包含在一个组中是没有意义的。该组的其余部分变得毫无意义,并且它没有添加任何内容。因此,组中的点表示文字点。请改为使用点:(.+)

 [ \t]*User[: \t]*(.+)