在regex模式中需要帮助

时间:2012-08-14 16:15:54

标签: javascript regex

我有这个正则表达式

\=[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

请帮忙! 谢谢,

2 个答案:

答案 0 :(得分:0)

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

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

\=".*?(?<!\\)"
如果那是你想要获得的,那么

将匹配href后括号中的任何内容。如果您正在寻找更多,可以轻松修改此正则表达式。

答案 1 :(得分:0)

修改 如果您只想匹配不带引号的属性,这应该有效:

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

有点不雅,但请告诉我这是否符合您的要求。


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

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

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