如何在NSScanner中使用正则表达式

时间:2014-08-11 15:58:22

标签: regex ios7 nsscanner

我有一个Windows例程(用C#编写),我试图移植到iOS Objective-C。它由以下使用正则表达式的代码组成:

r = new Regex(@"></div>Authors?:? "); // get start of "Authors:"
m = r.Match(page, m1.Index);
if (m.Success) {
r1 = new Regex("/\">"); // find start of actual author's name
m1 = r1.Match(page, m.Index + 16);
if (m1.Success) {
r = new Regex("</a>[<BR>]?"); // find end of author
m = r.Match(page, m1.Index + 3);
}
if (m.Success)
author.Text = page.ToString().Substring(m1.Index + 3, m.Index - (m1.Index + 3));
}

违反此HTML细分受众群:

</div>Authors: <a href="/author/Clarissa_Pinkola_Estes/">Clarissa Pinkola Estes</a>

上面的C#代码绕过了作者姓名的第一个实例,并给了我&gt;之间的字符串。和&lt;。

有没有办法使用NSScanner和regex在没有C#逻辑的情况下实现这一点(可行)?

1 个答案:

答案 0 :(得分:-1)

也许在C#中可以使用nsscanner(我不知道)

 # </div>Authors: <a href="/author/Clarissa_Pinkola_Estes/">Clarissa Pinkola Estes</a>
 # ------------------------------------
 # @"</div>Authors:[^<]*<[^>]+>([^<]+)</a>"
 # 

 </div>Authors: [^<]* < [^>]+ > 
 ( [^<]+ )                          # (1)
 </a>


 # Capture group 1 contains 'Clarissa Pinkola Estes'