【问题标题】:Regex - Maybe even in Editor?正则表达式 - 甚至可能在编辑器中?
【发布时间】:2015-10-29 11:53:19
【问题描述】:

我从未使用过任何正则表达式命令。我实际上认为我想要的是一个简单的基础。

我有一个电子邮件地址列表,我想在我的编辑器中查找和替换(使用 Atom):

电子邮件地址如下所示:name.surname@domain.com

我想将其替换为:<a href="mailto:<insert mailaddress>">

我可以在我的 Atom 编辑器中实现这一点,还是需要一个外部脚本来实现这一点?

例子:

<p>
<strong>Name Surname</strong><br>
Main Office<br>
<br>
<span class="glyphicon glyphicon-earphone"></span> 0000 / 11111 1111<br>
<span class="glyphicon glyphicon-envelope"></span> name.surename@office.com
</p>

【问题讨论】:

  • 这些电子邮件地址是否在数组中?那为什么不循环和连接呢?
  • 不,它们已经在 HTML 标记中,但没有 mailto:links。
  • 您能否举例说明该列表的具体外观?
  • 对不起,我表达错了:这不是一个真正的列表,它在一个 HTML 站点中,还有其他几个地址信息(例如电话/传真/等),将发布有问题的示例

标签: php html regex atom-editor


【解决方案1】:

[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+ 这样的简单模式应该可以捕获您在文件中查找的任何电子邮件地址。

在您的搜索和替换中,只需搜索([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+) 即可捕获整个地址,并将其替换为&lt;a href="mailto:\1"&gt;\1 指的是捕获的电子邮件地址。

Atom、Notepad++ 或任何其他类似的文本编辑器对此应该没有任何问题。

只是附注,可能不相关,但仍然不要使用此模式来验证用户的输入,因为它甚至会验证像 -@-.- 这样的地址。

【讨论】:

  • 这个模式应该用于搜索和替换已知有效地址的已知来源文件。不用于任何形式的验证。如果我大错特错,请纠正我,但我确实相信为此目的可以使用这样的模式,并且它确实会找到电子邮件地址。
  • 在 atom 中尝试过,但 atom 不会解析 href 中带有 \1 的邮件地址。所有其他的东西都被正确替换了
  • @Dustin 有时会使用$1 而不是\1,这取决于实现。由于我不了解 Atom,您最好参考它的用户指南并查找诸如“正则表达式”、“搜索和替换”、“反向引用”之类的术语。
  • 发现了错误。我不得不将正则表达式放在 ( ) 之间 - 然后它起作用了。
猜你喜欢
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多