【问题标题】:How to push certain strings from an huge string into array如何将某些字符串从一个巨大的字符串推入数组
【发布时间】:2017-03-07 01:19:23
【问题描述】:

这听起来可能很奇怪,但我想通过使用以下正则表达式推送某些字符串来解析 xml 响应:

data-href="[\d\w\/:\.\=]*[">]? 

到一个数组中。

这样做的原因只是为了测试。一个朋友用 jimdo 建立了一个网页,他在其中显示了一个图片库。现在我想尝试解析这个站点上的 xml,只获取每个 data-href 标记处的图像,并在我的 react native 应用程序中使用它们。

有什么想法吗?

【问题讨论】:

    标签: javascript regex react-native fetch


    【解决方案1】:

    为什么不直接使用 String.match 方法?

    var matches = xml_str.match(/data-href="[\d\w\/:\.\=]*[">]?/g);
    

    编辑:如果您只想在 href 中获取 URL,请使用正则表达式捕获组:

    var matches = xml_str.match(/data-href="([\d\w\/:\.\=]*)[">]?/g);
    console.log(matches);
    

    然后您可以将匹配数组映射为仅包含带有 URL 的元素。

    【讨论】:

    • 谢谢伙计。但我在我的代码中做错了什么。如果我用regex101.com 测试xml 响应,它看起来很棒,但是如果我在我的代码中这样做,我会得到一个奇怪的匹配响应。也许它是正确的,但是你如何将响应中的每个“data-href”推送到一个数组中?
    • 对不起,你必须在 JS 的结束分隔符后面放一个全局标志。我更新了我的答案。如果您仍然遇到问题,请保存并发布您的 regex101 链接,以便我查看。
    • 谢谢兄弟。它在这里工作https://regex101.com/r/c3yiYX/2,但不在我的代码中。我的代码现在为空
    • 谢谢伙计。我通过删除 /d 进行了更新,然后我看到我不允许在我之前应该看到的字符串中使用正则表达式!!! .match(/data-href="([\d\w\/:\.\=]*)[">]?/g); 不是 .match("/data-href="([\d\w\/:\.\=]*)[">]?/g");
    • @BigPun86 — 是的,您可以,只需引用引号,例如.match(/data-href=\"([\w\/:\.\=]*)[\">]?/g);。将代码发布为可运行的 sn-p 有助于确保它确实有效。 ;-)
    猜你喜欢
    • 1970-01-01
    • 2015-06-01
    • 2021-06-30
    • 2021-12-10
    • 2014-10-09
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多