这很难解释,我有这个正则表达式([a-zA-Z][\w.]+|[0-9][0-9_.]*[a-zA-Z]+[\w.]*):(.*)
- 它捕获Username:Whatever
并且它只捕获First Capture Group上的用户名。
问题在于,当我用电子邮件替换用户名部分时,它会捕获电子邮件@之后的所有内容。我希望它完全捕获NOTHING,甚至不是“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
答案 0 :(得分:1)
将锚^
和$
添加到正则表达式的开头和结尾会强制匹配从字符串的开头到结尾。
^([a-zA-Z][\w.]+|[0-9][0-9_.]*[a-zA-Z]+[\w.]*):(.*)$
如果您激活Multiline mode,则会使锚点在每个行的开头和结尾处匹配。