Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用regexp获取用户名_Regex_Postgresql - Fatal编程技术网

使用regexp获取用户名

使用regexp获取用户名,regex,postgresql,Regex,Postgresql,如何获取用户名wiith RE? 例如: User: john_smith User john_smith User john_smith 我要抓住约翰·史密斯 我尝试了这个[\t]+用户?[:\t]*[。]+ 但是它不能工作。 有人能帮忙吗?试试这样的方法: /User:?\s*(\S+)/ substring('User: john_smith' from 'User:?\s*(\S+)') 在postrgres中,应该是这样的: /User:?\s*(\S+)/ subst

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

User: john_smith

User john_smith

User   john_smith
我要抓住约翰·史密斯 我尝试了这个[\t]+用户?[:\t]*[。]+ 但是它不能工作。
有人能帮忙吗?

试试这样的方法:

/User:?\s*(\S+)/
substring('User: john_smith' from 'User:?\s*(\S+)')
在postrgres中,应该是这样的:

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

试着这样做:

/User:?\s*(\S+)/
substring('User: john_smith' from 'User:?\s*(\S+)')
在postrgres中,应该是这样的:

/User:?\s*(\S+)/
substring('User: john_smith' from 'User:?\s*(\S+)')
请尝试不使用前导[\t]+,这表示“至少一个”。或者使用[\t]*表示“尽可能多,可能为零”

单词“User”看起来不是可选的,因此请继续使用User[:\t]*。圆点是个小丑,与每个角色都匹配

因此,将其包含在一个组中是没有意义的。小组中的其他人变得毫无意义,而这并没有增加任何意义。因此,组中的点表示文字点。只使用点来代替:+

请尝试不使用前导[\t]+,这表示“至少一个”。或者使用[\t]*表示“尽可能多,可能为零”

单词“User”看起来不是可选的,因此请继续使用User[:\t]*。圆点是个小丑,与每个角色都匹配

因此,将其包含在一个组中是没有意义的。小组中的其他人变得毫无意义,而这并没有增加任何意义。因此,组中的点表示文字点。只使用点来代替:+


您能更精确地说明允许输入的形式吗?您的RE要求它以一个或多个空格或制表符开头,但您的示例中似乎没有一个是这样的。您能更精确地说明允许输入的形式吗?您的RE要求它以一个或多个空格或制表符开头,但您的示例似乎都没有。我需要在Postgre sql中执行此操作,如子字符串“User:john\u smith”,“User:?\s*\s+”,我添加了一个我使用构建的示例。我需要在Postgre sql中执行此操作,如子字符串“User:john\u smith”,“User:?\s*\s+”,我添加了一个我用它构建的示例。除了一件事之外,这非常有效。如果我有User:john_smith.Some text它返回john_smith.Some text,我只需要john_smith,那么您必须定义可能终止名称的内容。圆点似乎是合理的,但另一方面,下划线也可以。如果用户名只是a-zA-Z0-9和下划线,则[\t]*用户[:\t]*[a-zA-Z0-9\]+将解决您的任务。可能有点改进:[\t]*用户:?[\t]*[a-zA-Z0-9_234;]+。如果只有一个文字点可以终止名称,则负组会这样做:[\t]*用户:?[\t]*[^.]+。这非常有效,除了一件事。如果我有User:john_smith.Some text它返回john_smith.Some text,我只需要john_smith,那么您必须定义可能终止名称的内容。圆点似乎是合理的,但另一方面,下划线也可以。如果用户名只是a-zA-Z0-9和下划线,则[\t]*用户[:\t]*[a-zA-Z0-9\]+将解决您的任务。可能有点改进:[\t]*用户:?[\t]*[a-zA-Z0-9_234;]+。如果只有文字点可以终止名称,则负组将执行此操作:[\t]*用户:?[\t]*[^.]+。