Tom*_*Tom 9 google-spreadsheets microsoft-excel
我希望从 Google Docs/Excel 中的文本字符串中提取电子邮件地址并自动通过电子邮件发送它们,其中单元格的内容目前未知(直到用户更新)。
例如,他们可能会读到:
你好,
我的朋友example@example.com。
谢谢,
示例乔
或者
你应该问
例子@example.co.uk
我目前有这个公式:
=IFERROR((LEFT(CELL,FIND("@",CELL)-1))&"@"&(regexextract(CELL,"@(.*)")))
Run Code Online (Sandbox Code Playgroud)
它适用于几乎所有情况,除了
a) 如示例 1 中所示,其中有人放置了 , 或 。在电子邮件的末尾
b) 如示例 2 中所示,电子邮件从新行开始,它的输入格式为例如。
问
例子@example.com
我该如何调整公式来纠正这些问题?
nix*_*xda 10
谷歌电子表格有这些很酷的内置正则表达式
我们使用第一个来提取邮件地址。将此公式放入 Google 电子表格单元格中:
=iferror(Regexextract(A1;"[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}");"")
Run Code Online (Sandbox Code Playgroud)
A1 是要检查的字符串(在您的情况下为邮件正文)应驻留的单元格Regexextract(A1,"\[A-z0-9._%+-\]+@\[A-z0-9.-\]+\.\[A-z\]{2,4}") 返回邮件地址iferror(innerformula,"")防止#N/A正则表达式无法返回任何内容,例如找不到有效的邮件地址[A-z0-9._%+-]+@[A-z0-9.-]+.[Az]{2,4}
A-z表示 anA和 a之间的任何字符z。0-9 代表任何数字._%+- 代表那些标志本身[ ] 表示括号内允许的单个字符+符号放在后面[ ]可以无限重复之前的模式@没有特别的意义。它从字面上搜索一个@标志[A-z0-9.-]+和上面一样。但这次_%+不允许在@标志后面\.搜索单个点。它必须用前面的字符进行转义,\因为.通常是任何字符的占位符[A-z]{2,4}搜索 2,3 或 4 个不区分大小写的字符| 归档时间: |
|
| 查看次数: |
30180 次 |
| 最近记录: |