我有这个正则表达式
\=[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
请帮忙! 谢谢,
答案 0 :(得分:0)
这是一个邪恶的角色类......
为什么你不尝试更合理的东西。试试这个......
\=".*?(?<!\\)"
如果那是你想要获得的,那么将匹配href后括号中的任何内容。如果您正在寻找更多,可以轻松修改此正则表达式。
答案 1 :(得分:0)
修改强> 如果您只想匹配不带引号的属性,这应该有效:
[<\s]+[\w]+(=[^\"][^\s>]*)
有点不雅,但请告诉我这是否符合您的要求。
你想要匹配哪种模式?所有这三个?如果是这样,哪一部分?主题还是电子邮件?如果您只是想匹配主题,请尝试将其用作匹配的模式:
\=\"mailto:[^?]*\?subject=([^\"]*)\"\>
这将返回一个匹配,其中组是主体本身。