问题为要把数据表里某个字段里的记录,剥离出符合匹配条件的那一段记录。最简单的例子比如把手机号码中移动的号码给分捡出来。这个如何利用正则表达式我是会的。 现在这个问题复杂一些,匹配的可能性有若干项,比如“http:….jpg”、“http:….gif”、“rtsp:…jpg”等等,也就是说匹配的头(如http、rtsp)和尾(如jpg、gif)均有若干种可能,这个我就搞不定了! 请高手指点一下如何利用正则分拣出匹配指定条件的字符串!谢谢!
解决方案 »
- 【新人请教】dataGridView 问题!
- 关于.net 程序脱离framework
- 求助高手X32 X64问题
- Scribd iPaper即传即看 是如何实现的? 请高手指点
- 水晶报表设计时用的dataset在程序运行中是否可以替换
- 如何把treeview 中的节点保存到XML文件中 ,并且在打开页面的时候能从XML加载到treeview中。。。
- 在.net2005使用AxSpreadsheet编程?
- 请问用C#如何连接邮箱!谢谢
- 关于导出存储过程的小工具
- 安装VS2003格了又装,装了又格,折腾了一个多月还是不行,朋友们有空入来看看不妨
- Listview 如何显示一对多数据?
- 从不是创建控件“textBox1"的线程访问它。
这是URL的正则,你可以把后面改为你所需要验证的字符JPG等等
我的问题就是如何解决头和尾都可能出现若干种可能匹配字符串的情况!!!!!
或者如何利用程序和正则结合解决这个问题!!
bool FoundMatch = false;
try {
FoundMatch = Regex.IsMatch(SubjectString, "^(http:|https:|rtsp:).*(\\.jpg|\\.gif)$");
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
bool FoundMatch = false;
try {
FoundMatch = Regex.IsMatch(SubjectString, "^(http:).*(\\.jpg)$|^(https:).*(\\.gif)");
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
string sTemp="qngolhmhttp:jdih.jpgdssh";//只是随便的举个例子,这里是要匹配的字符串
string regularStr="(http:|https:|rtsp:).*?(\\.jpg|\\.gif)";
Match M1 = Regex.Match(sTemp,regularStr,RegexOptions.Singleline|RegexOptions.IgnoreCase);
string result = M1.Value;
然后这个result就是要的结果啦!
这个是正解。。
string regularStr="(http:|https:|rtsp:).*?(\\.jpg|\\.gif)";
但最好用Matchs来一次捕捉全部的匹配字符串。。
下面是我写的
Input是输入框、Out是输出框
Regex regSub = new Regex("(http:|https:|rtsp:).*?(\\.jpg|\\.gif)",RegexOptions.Compiled);
Match mcMatch;mcMatch = regSub.Match(Input.Text);
if(mcMatch.Success)
{
Out.Text = mcMatch.Value;
}
else
{
Out.Text = "无匹配结果!";
}
至于两位正则里的细微差别,我再学习一下。分数送上!谢谢指教!!