【问题标题】:Regular Expression to parse out anchor tag's href正则表达式解析锚标签的href
【发布时间】:2019-03-02 21:01:48
【问题描述】:

我有html代码:

<a href="javascript:void(0);" id="seller0-showAllImage" onclick="showPlusBox(0,'/products/plusbox?cid=9286328115358229395&amp;authorid=2860562')" class="fl">

结果我只需要字符串:

/products/plusbox?cid=9286328115358229395&amp;authorid=2860562

如何在 html 代码的 RegEx 中匹配它? 谢谢!

【问题讨论】:

  • 信息不足。在此示例中,正则表达式 '(.*)' 已经足够了,但如果文本中可能有多个单引号实例,它就会中断。
  • 据我了解正则表达式,它们适用于模式。如果您只需要该字符串,那么您已经拥有它...如果您还希望能够匹配其他人,那么最好提供更多关于您尝试匹配的其他内容的信息.他们总是以 /products/ 开头吗?它们总是以 authorid=# 结尾吗?
  • 您在哪个上下文中处理数据?
  • @Felix Kling:为什么要删除 NSRegularExpression 标签?这是 OP 想要在 Objective-C 中做到这一点的唯一线索。
  • @sidyll:我认为这可能是一个错误,因为我看到了另一个错误使用此标签的问题(人们开始输入regulare...,列表中的第一个标签是nsregularexpression)。不过你说得对,也许他真的很想用Objective-C(回滚)(虽然问题的历史不支持这个想法)。

标签: regex nsregularexpression


【解决方案1】:

匹配:

showPlusBox(0,'([^']+)')

Reference $1 就是您要查找的字符串。

当然,这在很大程度上取决于您要匹配的确切字符串;它的嵌入位置等。仅举一个例子,就没有太多可推断的了。老实说,正则表达式

/products/plusbox\?cid=9286328115358229395&amp;authorid=2860562

例如,还可以匹配您要查找的内容。

【讨论】:

  • +1,但在 5 分钟之前编辑以匹配我发布的内容是作弊! :-) 开个玩笑
  • 我在编辑后才看到您发布的内容 ;-)。实际上,指出这是很自然的事情。但请注意,您首先需要替换 HTML 实体,否则将不会匹配任何内容 :-)
  • 嗯,很奇怪,因为我确信我已经复制了字符串。也许格式吃掉了amp,但感谢您指出这一点。
  • sidyll:呃,没关系。他们实际上想要 HTML 中的字符串,而不是它所代表的相对 URI。
【解决方案2】:

这个正则表达式:

/products/plusbox\?cid=9286328115358229395&authorid=2860562

匹配它。

如果您想要更通用的表达式,请提供更多信息。

【讨论】: