如何根据字符拆分字符串 - 使用正则表达式?

问题描述 投票:0回答:1

我有多行,每一行都有一个字符串,其中包含一个电子邮件地址和其他数据,用 - 字符分隔。 这是一个示例。

[email protected]
[email protected]
[email protected] Shoes Collective-9909

当我使用以下正则表达式时

^(.*?)-

此正则表达式返回 - 例如 935567 之后的所有内容。 结果很好,但与我需要的相反。 我需要的结果是电子邮件地址(- 之前的所有内容)

我没有使用 C 或 java.

我似乎无法制作正确的正则表达式。这应该很简单,我已经进行了一些在线搜索,但我花了太多时间在上面。

感谢您的帮助。

regex string split
1个回答
0
投票

像这样:

^(.*?)(?=-)

匹配的部分在一个capture group中,依赖于lib/tool/language,可以呈现为

&
$&
\1
$1

模式下使用 的示例:

$ grep -oP '^(.*?)(?=-)' file
[email protected]
[email protected]
[email protected]

在线演示

正则表达式匹配如下:

节点 说明
^
行首
(
分组并捕获到:
.*?
除了 (0次或更多次(匹配尽可能少的数量))
)
结束
(?=
向前看看看有没有:
-
-
)
提前结束
© www.soinside.com 2019 - 2024. All rights reserved.