1

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

User: john_smith

User john_smith

User   john_smith

我需要抓住 john_smith 我试过这个[ \t]+(User)?[: \t]*([.]+) 但不能让它工作。有人可以帮忙吗?

4

2 回答 2

3

尝试这样的事情:

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

在 postrgres 中,它会是这样的:

substring('User: john_smith' from 'User:?\s*(\S+)')
于 2012-04-27T18:54:09.820 回答
1

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

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

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

 [ \t]*User[: \t]*(.+)
于 2012-04-27T18:54:54.030 回答