Replace 正则表达式-在特定字符之前查找第一个字符(如Excel的左函数)

Replace 正则表达式-在特定字符之前查找第一个字符(如Excel的左函数),replace,backreference,Replace,Backreference,我正试图找到一种方法,在.csv文件的单列中,用@符号前的前10个字符查找/替换电子邮件地址。CSV文件示例如下: PrimarySmtpAddress userA@domain.com UserB@domain.com UserAlongername@domain.com UserBlongername@domain.com PrimarySmtpAddress UserA UserB UserAlonge UserBlonge 我期望的结果是: PrimarySmtpAddress us

我正试图找到一种方法,在.csv文件的单列中,用@符号前的前10个字符查找/替换电子邮件地址。CSV文件示例如下:

PrimarySmtpAddress
userA@domain.com
UserB@domain.com
UserAlongername@domain.com
UserBlongername@domain.com
PrimarySmtpAddress
UserA
UserB
UserAlonge
UserBlonge
我期望的结果是:

PrimarySmtpAddress
userA@domain.com
UserB@domain.com
UserAlongername@domain.com
UserBlongername@domain.com
PrimarySmtpAddress
UserA
UserB
UserAlonge
UserBlonge
到目前为止,我已经找到了如何通过这样做来摆脱@和随之而来的一切:

查找:.*@* 替换:\1

我希望可以在\1之后添加一些内容,指定只替换\1中包含的前10个字符

任何人有什么想法吗?

试着制作您的正则表达式{1,10}@.*并替换为\1。{1,10}表示……中的一到十个


根据您用于替换的工具,它可能会尝试匹配整个字符串-在这种情况下,您可以使用^.*?{1,10}@.*$。

非常感谢您的快速回答。使用选中正则表达式的记事本+,不幸的是,它们都找不到我的任何电子邮件地址。也许记事本++是罪魁祸首?哦。Notepad++中的正则表达式是我最不喜欢的一件事——它糟透了。那里没有{n,m}操作符,因此无论如何也无法对正则表达式执行您想要的操作。