【发布时间】:2018-06-09 01:44:22
【问题描述】:
我正在尝试替换名字、姓氏、电子邮件、电话、地址字段,而不是其他字段。
这是我目前使用正则表达式所做的 (&?(firstName|lastName|email|phone1|address)=?[^&]*)
这基本上选择了“&”,然后是名字|姓氏|电子邮件|电话1|地址以及“=”之后的每个字符。请注意,如果“=”后跟“&”符号,则正则表达式不匹配。
我能够正确选择每个字段,但是当 URL 在“=”之后有一个“&”时,我的解决方案无法正常工作,因为它只选择“&”字符之前的值。
作为一个有效的电子邮件可以有一个“&”。我需要一个解决方案,即使“=”之后有“&”符号,正则表达式也会选择。
示例:&email=abc&xyz@.com - 在这种情况下,正则表达式只选择“&email=abc&”而不是整个电子邮件。
【问题讨论】:
-
考虑使用 url 解析器
-
通常,URL 中的
&字符将被 URL 编码:%26。 -
您使用的正则表达式是什么编程语言/程序?由于正则表达式是特定于平台的,并且某些正则表达式引擎支持的功能比其他引擎更多,因此这与问题非常相关。
-
我在使用 javascript 匹配后替换字符串。 @格雷厄姆
-
感谢您的帮助! @DavidFaber 和丹尼尔
标签: javascript regex regex-negation regex-group