我目前正在为此修改我的正则表达式:
在 ruby/rails 的 html 块中提取电子邮件地址
基本上,我通过解析包含mailto referrer(使用hpricot)的所有链接的文本块来制作另一个使用ROT13的混淆器。一个没有捕捉到的用例是,如果用户只是输入了一个电子邮件地址(没有通过 tinymce 将其转换为链接)
所以这是我的方法的基本流程: 1. 使用 href="mailto:..." 解析所有标签的文本块 2. 用将其更改为 ROT13 的 javascript 函数替换每个标签(使用此脚本:http: //unixmonkey.net/?p=20 ) 3. 一旦所有链接都被混淆,将生成的文本块传递给另一个解析所有电子邮件的函数(这个函数有一个电子邮件正则表达式,可以反转电子邮件地址,然后添加一个跨度到那封电子邮件 - 将其转回)
第 3 步应该清除未包含在 href 标签中的剩余电子邮件的文本块(这意味着它没有被 hpricot 解析)。问题是我的正则表达式仍然可以找到转换为 ROT13 的电子邮件。我想要捕获的只是未转换为 ROT13 的电子邮件。
我该怎么做呢?好吧,所有被转换的电子邮件都有一个尾随的“'.replace”。意思是,我需要获取所有没有该字符串的电子邮件。到目前为止,我有这个正则表达式:
/\b([A-Z0-9._%+-]+@[A-Z0-9.-]+.[AZ]{2,4}('.replace))\b/i
但这会得到所有带有尾随'.replace的电子邮件我想得到相反的结果,我目前对此感到困惑。正则表达式大师有什么帮助吗?
更多信息:
这是正则表达式+正在解析的文本块:
http://www.rubular.com/r/NqXIHrNqjI
如您所见,前两个“电子邮件地址”已经使用 ROT13 进行了模糊处理。我需要一个正则表达式来接收电子邮件 ohhellzyeah@ribute.com 和 kaboom@yahoo.com