【问题标题】:Need help in regex pattern在正则表达式模式中需要帮助
【发布时间】:2012-08-14 16:15:54
【问题描述】:

我有这个正则表达式模式

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

请帮忙! 谢谢,

【问题讨论】:

  • 我不明白你想要什么。您需要一个模式来匹配这三个 href 值吗?
  • 正则表达式链接中的真实电子邮件地址?
  • 您能否将 href 属性读入一个数组并检查是否只有一个空格,紧跟在 mailto: 之后?
  • 我只需要那些没有双/单引号的属性值,我需要在属性值周围加上双引号。

标签: javascript regex


【解决方案1】:

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

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

有点不雅,但如果这样做符合您的要求,请告诉我。


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

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

这将返回组是主题本身的匹配项。

【讨论】:

  • 我只需要那些没有双/单引号的属性值,我需要在属性值周围加上双引号
  • 那么在你上面的例子中,你想完全匹配什么?
  • 所有没有双引号的属性,该模式适用于以下 html johnross@wen.com 但不是 johnross@wen.com 在第二种情况下,不应匹配任何内容,因为 href 值已经有双引号,但是在模式给我=LongTerm in selection
  • 仍然不正确...我只需要匹配以下html中的“=second” 测试
  • 好的,看看我的调整。在这种情况下,您需要引用该组 - 您熟悉该过程吗?在您的示例中,引用匹配的组将返回 =second
【解决方案2】:

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

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

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

如果这是您想要得到的,它将匹配 href 之后括号中的任何内容。如果您正在寻找更多,这个正则表达式可以很容易地被修改。

【讨论】:

  • 我只需要那些没有双/单引号的属性值,我需要在属性值周围加上双引号
猜你喜欢
  • 1970-01-01
  • 2012-11-30
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多