作者terrytai (Terry)
看板C_Sharp
标题Re: [问题] 如何把字串中的特定字串撷取出来
时间Sun Feb 19 16:45:59 2006
谢谢各位大大
之前小弟看完第一篇的第一个推文之後
就去找了RE的教学网站
今天再看版才发现又有好多大大回了小弟的问题
不过其他的方法小弟都还没试
先说这两天学RE的问题
我是看这个网站学的
http://0rz.net/fa14d
这里讲的很详细,只是要花点时间消化英文
後来我写来比对字串的程式码如下
Regex regex = new Regex(
@"\b"">\b.*\b</a>",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);
接下来就是要把我比对出来的用MessageBox.Show印出来
不过那个网站只教了如何比对而已
所以就到微软MSDN的Example: Scanning for HREFs这一页
网址
http://0rz.net/c715w
不过这里小弟实在是看不太懂
就照着它的范例改写成下面这样
Match m;
for (m = regex.Match(outFilePath); m.Success; m = m.NextMatch())
{
MessageBox.Show("Found href " + m.Groups[1] + " at "
+ m.Groups[1].Index);
}
接下来我就卡关了
可以compile也可以run
不过那个MessageBox就是怎样都Show不出来
请问大大问题出在哪里
整段程式码是这样
void DumpHrefs(String outFilePath)
//outFilePath是存放HTML档案的路径
//在程式前面有宣告成outFilePath=@"\SD Card\research\html\administration.htm";
//那个路径是PDA里面的路径
//小弟开发的是SmartDeviceApplication专案
{
Regex regex;
Match m;
regex = new Regex(
@"\b"">\b.*\b</a>",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);
for (m = regex.Match(outFilePath); m.Success; m = m.NextMatch())
{
MessageBox.Show("Found href " + m.Groups[1] + " at "
+ m.Groups[1].Index);
}
}
麻烦各位大大帮我看看是哪里有问题
微软MSDN那里小弟实在是看不懂
其他大大回PO的方法小弟去看看
真想不到有这麽多篇回PO
还以为我的问题只会获得一个推文就没了
真感谢每位在回文及推文中帮忙的大大
※ 引述《terrytai (Terry)》之铭言:
: 如果要从一个html档案中找出特定的字串
: 整个原始码抓出来的字串设程string tempCode
: 已经知道我想要的字串前面一定有>
: 後面一定有</a>
: 如何把html档案中每个符合这个条件的字串
: 都抓出来另存成新的字串?
: 那麽我是不是就先设了string StartString = ">";
: string EndString = "</a>";
: 然後呢?
: 怎麽去找出介於StartString跟EndString中间的每个字串?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.175.96.22
1F:→ abgne:我是先用正规表示法找出每一串<a..>..</a>後 再去找字串的 02/19 16:53
2F:推 liunate:for中的inputString是你想要进去搜寻的字串吗? 02/19 16:5
3F:→ terrytai:liunate大大~for里面有笔误~已更正 02/19 17:05
※ 编辑: terrytai 来自: 218.175.96.22 (02/19 17:25)
4F:推 liunate:如果complie没问题 输出code也是照范例 那麽 02/19 17:32
5F:→ liunate:真相永远只有一个 你的regex语法对吗? =P 02/19 17:33