正则表达式提取字符串和swift中另一个字符串的第三个出现之间的字符串?

时间:2016-11-02 17:51:35

标签: regex swift

我有一个很大的HTML,我必须在swift中解析它并提取一些id。

如何从<ul> <li> <svg class="foo blue"> <use xlink:href="#foo"></use> </svg> Blue </li> <li> <svg class="foo purple"> <use xlink:href="#foo"></use> </svg> Purple </li> <li> <svg class="foo wine"> <use xlink:href="#foo"></use> </svg> Wine </li> </ul> <svg class="svg-spritesheet"> <symbol id="foo" viewBox="0 0 20 20"> <title>foo</title> <rect width="20" height="20" fill="currentColor" stroke="#000" stroke-opacity="0.2" /> </symbol> </svg>中提取以下字符串data-max-position="NAME-661174248527044608-661303076113014786-BD1UO2FFu9QAAAAAAAAET(ar之间的数字不是固定大小)?  我需要在data-max-position =&#34;之间获取数据。第三次出现&#34; - &#34;

我应该使用什么样的正则表达式来提供我需要的信息?

到目前为止,对于另一种字符串,我使用了以下内容,但我不知道应该使用什么正则表达式来获取第一部分中提到的内容

NAME-661174248527044608-661303076113014786

&#34; data-name-id&#34; 中的内容和第二个&#34;

中的内容提取出来

1 个答案:

答案 0 :(得分:1)

如果你有一个你提到的格式的纯文本字符串,你可以使用正则表达式来提取它的一部分:

pattern:"\\sdata-max-position=\"([^\"-]+-[^\"-]+-[^\"-]+)"

<强>详情:

  • \\s - 空白
  • data-max-position=\" - 文字data-max-position=" substring
  • ([^\"-]+-[^\"-]+-[^\"-]+) - 第1组(您所需的值)匹配
    • [^\"-]+ - "-以外的一个或多个字符
    • - - 连字符
    • [^\"-]+-[^\"-]+ - 见上文。

请注意,[^...]是一个*否定字符类,它匹配任何未在字符类中的范围/集中定义的字符。