【发布时间】:2018-10-05 18:33:44
【问题描述】:
我正在寻找一种从正则表达式匹配中获取范围的方法。我有一个字符串
我正在寻找@{1 |汤姆·洛夫} 和@{2 |水晶黎明}
从这个字符串中,我需要使用以下正则表达式获取这些匹配的范围
"@\\{(\\d+) ?\\| ?(\\w+ *?\\w*?)\\}"
最好的方法是什么?到目前为止,我只能获得比赛,但不能获得范围。显然,标准的Swift函数range(of: <#T##StringProtocol#>, options: <#T##String.CompareOptions#>, range: <#T##Range<String.Index>?#>, locale: <#T##Locale?#>)应该可以做到这一点,但是我不知道如何使用它,似乎找不到一个很好的例子。
我也尝试过这个问题的答案get all ranges of a substring in a string in swift,但我还是无法让它工作。
【问题讨论】:
-
stackoverflow.com/questions/32305891/… 你可以使用
ranges(of:)和options: .regularExpression -
您是否愿意将我的答案标记为正确,因为我相信它满足您的原始问题和随后提出的变体。谢谢。顺便说一句,好问题。