日期:2014-05-18  浏览次数:20357 次

aspnet处理这样的string
string   a=   if   i   can   say   i   will   (look)   it   ,but   you   do   not   know   that   l   (love)   you,i   love   you   but   you   (love)   him   my   herat   be   (breaked)

分割出string中()中的动词
look   love   love   breaked
难点在与该string   的()词语不确定
string   a=   if   i   can   say   i   will   (look)   it   ,but   you   do   not   know   that   l   (love)   you,i   love   you   (but)   you   (love)   him   my   _herat)   be   (breaked)

如何写出通用方法
分割出()内的词语

------解决方案--------------------
用Split生成数组,再判断数组的每个成员
------解决方案--------------------
正则应该也可以
------解决方案--------------------
关键是不是动词
根本无法判断
比如有的词可以是动词 可以是名词
------解决方案--------------------
还有这个
know
为什么不是动词?
------解决方案--------------------
如果你已经用括号扩起来了 那就用正则
如果没有.....那就建个字典 不过没敢想过
------解决方案--------------------
如果说你的string已经事先处理好了,要提取的词就是在()内,那么可以这样做

string a= "if i can say i will (look) it ,but you do not know that l (love) you,i love you but you (love) him my herat be (breaked) ";
MatchCollection mc = Regex.Matches(a, @ "\((? <var> [^\)]*)\) ");
string[] var = new string[mc.Count];
for (int i = 0; i < mc.Count; i++)
{
var[i] = mc[i].Groups[ "var "].Value;
}

但是如果事先没处理好,需要先判断词性的话,那就不是一个小项目了