0

我正在寻找文本中所有出现的字符串,但我不明白为什么代码不起作用。在正文中,出现了 2 处。

文本 :

<div class="infosLigneDetail pointer" onclick="javascript:toggleForfait('1');">
                    Alexandre OUICHER - Forfait Free illimité à 19,99 euros - 0627505460                        <input

搜索字符串:

Alexandre OUICHER - Forfait Free illimité à 19,99 euros - 0627505460

正则表达式:

NSRegularExpression *regexpComptes = [NSRegularExpression regularExpressionWithPattern:@"(?<=javascript:toggleForfait('[0-9]');\">).*?(?=<input)" options:NSRegularExpressionSearch error:NULL];
NSArray *matchesComptes = [regexpComptes matchesInString:content
                                                   options:0
                                                     range:NSMakeRange(0, [content length])];

你知道问题出在哪里吗?

4

1 回答 1

2

你没有逃脱(and )in toggleForfait('[0-9]')。它被视为捕获组。它应该\(\)分别...toggleForfait\('[0-9]'\)

您想要的正则表达式是(?<=javascript:toggleForfait\('[0-9]'\);\">).*?(?=<input)启用了 dotall 选项的NSRegularExpressionDotMatchesLineSeparators

看这里:http ://regexr.com?30ool

于 2012-04-25T06:22:14.530 回答