【发布时间】:2015-11-06 15:24:46
【问题描述】:
作为桌面应用程序的一部分,我试图从一个 HTML 列表中提取我的 Facebook 朋友,该列表位于下载的 Facebook 数据包随附的 HTML 文件中。列表是这样的
<h2>Friends</h2>
<ul>
<li>John Skeet</li>
<li>Donald Knuth</li>
<li>Mark Zuckerberg</li>
.
.
.
</ul>
(除了没有空格,没有换行符;我只是在这个线程中为了美观而这样写的)。所以我会尝试让John Skeet、Donald Knuth、Mark Zuckerberg、...摆脱这些。
注意:列表是有限的。我一直在写的“...”并不意味着它会无限地持续下去。
到目前为止我的程序是
private static readonly string _friendsRegex = "<h2>Friends</h2><ul>something</ul>"; // regular expression for matching friends' names
static void Main ( string [] args )
{
try
{
if ( args.Length != 1 ) throw new Exception("Unfriendly.exe expects 1 parameter, the full path the data of your Facebook acount");
using ( StreamReader sr = new StreamReader("/html/friends") )
{
String html = sr.ReadToEnd();
HashSet<string> curfriends = new HashSet<string>();
Regex fregx = new Regex(String.Format(@"{0}",Program._friendsRegex), RegexOptions.Compiled);
foreach (Match thisfriend in fregx.Matches(html))
curfriends.Add(thisfriend.Value);
// ...
}
}
我想知道_friendsRegex 应该是什么,或者是否有可能构建这样的正则表达式。
【问题讨论】:
-
“
- [\w]+
”呢? \w 后面的空格是有意的;) -
在
w上获取“意外的转义序列”错误