2

我有这个正则表达式模式

\=[a-zA-Z\.\:\[\]_\(\)\&\$\%#\-\@\!0-9;=\?/\+\xBF\~]+[?\s+|?>]

我有这个 HTML

1.<a href="mailto: abc@xyz.com?subject=Long Term Care Enrollment">esc@xyz.com</a>
2.<a href="mailto: abc@xyz.com?subject=LongTerm Care Enrollment">johnross@zys.com</a>
3.<a href="mailto: abc@xyz.com?subject=LongTermCareEnrollment">johnross@wen.com</a>

这里的问题是,我需要避免第一个和第二个,因为它也有空格并且它是有效的属性。但只有第三个正在工作,因为它没有空格。表示不应使用上述模式选择任何内容。

这是测试的直接链接

http://regexr.com?31r61

请帮忙!谢谢,

4

2 回答 2

0

那是一个邪恶的角色类......

你为什么不尝试一些更合理的东西。试试这个...

\=".*?(?<!\\)"

如果那是你想要得到的,那将匹配 href 之后括号中的任何内容。如果您要寻找的不止于此,则可以轻松修改此正则表达式。

于 2012-08-14T16:28:05.370 回答
0

编辑: 如果您只想匹配未引用的属性,这应该有效:

[<\s]+[\w]+(=[^\"][^\s>]*)

有点不雅,但让我知道这是否符合您的要求。


您要匹配哪种模式?三个都?如果有,是哪一部分?主题还是电子邮件?如果您只是想匹配主题,请尝试将其用作匹配模式:

\=\"mailto:[^?]*\?subject=([^\"]*)\"\>

这将返回一个匹配,其中组是主题本身。

于 2012-08-14T16:28:34.213 回答