【发布时间】:2016-08-04 00:51:10
【问题描述】:
这很难解释,我有这个正则表达式([a-zA-Z][\w.]+|[0-9][0-9_.]*[a-zA-Z]+[\w.]*):(.*) - 它捕获Username:Whatever,它只捕获第一捕获组中的用户名。
问题是当我用电子邮件替换用户名部分时,它会捕获电子邮件 @ 之后的所有内容。我希望它完全捕捉到任何内容,甚至“随便”位。
我找不到办法。
输入示例:
username@domain.ext:123abc
username:123abc
shiny@gmail.com:abc123
Shiny:abc123
输出应该是:
username:123abc
Shiny:abc123
当前正则表达式输出:
domain.ext:123abc
username:123abc
gmail.com:abc123
shiny:abc123
【问题讨论】:
-
使用锚点:
^([a-zA-Z][\w.]+|[0-9][0-9_.]*[a-zA-Z]+[\w.]*):(.*)$ -
@anubhava ^ 和 $ 不会工作,因为我在哪里搜索我的正则表达式。
-
能否请edit 提供一些示例输入和输出?你用的是什么语言?
-
@4castle 在 vb.net 中执行此操作,但不应相关。
-
@4castle 甜蜜!这样可行!将其添加为 answe 与带有 ^ 和 $ 的正则表达式结合并不接受它