123.123.123.11 ref.
123.123.123.10 ref
123.123.123.110 dfsgsdf
123.123.123.19 mkfgjh如何匹配非:123.123.123.10.+
行
123.123.123.10 ref
123.123.123.110 dfsgsdf
123.123.123.19 mkfgjh如何匹配非:123.123.123.10.+
行
解决方案 »
- 关于c#导出word分页问题
- 在网络映射驱动器中运行.net程序出错
- Dotfuscator严重的问题!用过的朋友请进...
- 访问关系数据库
- 浏览器打开CSDN是XML的, 为什么我用WebRequest读出的却是HTML?
- 简单排序问题,立马给分
- 在线等 急!!:怎么实现从string到datatime类型的转换
- C#应用程序为何占那么多内存?
- 软件如何加密
- 请问在C#中如何将查询结果赋值??谢谢!!!
- 如果只用c#作web development,还有必要详细了解delegates and events/reflection and attributes/multithreading
- 在界面上有三个按钮,但是用一个事件怎么做怎么做?
string message = "123.123.123.10 ref";
Regex reg = new Regex(@"^123\.123\.123\.10 \w+$");
Console.WriteLine(reg.IsMatch(message));
or
Regex reg = new Regex(@"^(123\.){3}10 \w+$");
123.13.123.11 rdfsadfef.
123.123.123.10 ref
1.3.123.10 dfsgsdf
asdfasdf
asdfasdfasdfasdfasdf2345234ewrqw52135
123.1.12.19 mkfgweqrqwerqwerjh 如何匹配"非:123.123.123.10.+ "
行可以说其它行与这行就是根本不同的行,主要的思想还是"非"
Regex reg = new Regex(@"^123\.123\.123\.10 \w+$");
Console.WriteLine(!reg.IsMatch(message));
reg.IsMatch(message) -> !reg.IsMatch(message)
if(!str.StartsWith("123.123.123.10"))
判断一下也就是了foreach (string s in richTextBox1.Lines)
{
if (!s.StartsWith("123.123.123.10"))
richTextBox2.Text += "true\n";
else
richTextBox2.Text += "false\n";
}
string message = "123.123.123.10 ref";
Regex reg = new Regex(@"(?<=^|\r\n)(?!123\.123\.123\.10).+");
前边有内容,不定123.123.123.10后边有内容,不定
3333333333333
4444444444444
如何匹配"非:.+123.123.123.10.+ "
行 匹配结果是,
11111111111113333333333333
4444444444444
textBox2.Text = Regex.Replace(textBox1.Text, @"\n.*123\.123\.123\.10.*\n", "\n\r\n");
如果源字符串是多行的,那么用 \n 进行 Split 后,再对所得数组每个元素用 IndexOf 来判断过滤,然后再组合一下也很简单的当然,如果是源字符串是多行的,那么用正则来做语句上简洁一些
string result = Regex.Replace(str, @"^.*?123\.123\.123\.10.*$", "", RegexOptions.Multiline);但是话说回来,楼主既然不懂正则,这种所谓的简洁也是完全没必要的,因为这种代码你无法维护,出了问题也不知道是哪里的问题
我在索引里面查找都是带个字的如#elif 这又看的我迷糊
上网站上有的符号呢有时查不到的?困惑
wuyazhe 及sxmonsy 接近我想要的结果,我再把问题说明下: 1111111111111
前边有内容,不定123.123.123.10后边有内容,不定
3333333333333
4444444444444
如何匹配"非:.+123.123.123.10.+ "
行 匹配结果是,
1111111111111 3333333333333
4444444444444
foreach (Match m in mc)
{
richTextBox1.Text += m.Value + "\n";
}
你说我们给的都不对,那就只好猜测一下了,既然Replace都不对,那么楼主要的可能是提取,但如果是提取,又有几点让我想不通问题一:
楼主给出的
匹配结果是,
11111111111113333333333333
4444444444444让我不明白的是1111111111111和3333333333333之间为什么会有一个空行,这分明是替换后的结果,而不是提取后的结果问题二:
这种问题直接用string的Replace就能搞定,楼主为什么一定要用正则,如果给不出一个合理的理由,只能说楼主不懂正则,而且在滥用正则
1在我没表达清楚,
2在我测试时由于思维问题,一直按自己的说法去测试各位提供的代码,而没满足我的需求,且我使用的是一个文本编辑器Emeditor,所以root_ 及HimeTale 提供的方法,我没有采纳以上是我的问题,我为此向两位道歉惯例,贴上我是如何解决的:
解决方法源于22楼的root_提供的代码,相应的正则表达式是:
^(?!.*123\.123\.123\.10).*$
或
^(?!.*123.123.123.10).*$===================================
另,我要处理的问题是这样的:
2008-07-14 15:44:40 W3SVC491 60.27.236.4 GET /Item/How-To-Connection-My-Computer-Flow-IP-yongfa365.html - 80 - 74.6.22.106 Mozilla/5.0+(compatible;+Yahoo!+Slurp;+http://help.yahoo.com/help/us/ysearch/slurp) 200 0 0
2008-07-14 15:44:51 W3SVC491 60.27.236.4 GET /item/Clear.bat-System-Windows-98-XP-2003-yongfa365.html - 80 - 124.73.140.102 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0) 200 0 64
2008-07-14 15:44:51 W3SVC491 60.27.236.4 GET /item/Clear.bat-System-Windows-98-XP-2003-yongfa365.html - 80 - 124.73.140.102 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0) 206 0 64
2008-07-14 15:47:11 W3SVC491 60.27.236.4 GET /Articles.xml - 80 - 65.214.44.28 Bloglines/3.1+(http://www.bloglines.com;+1+subscriber) 200 0 64
2008-07-14 15:47:47 W3SVC491 60.27.236.4 GET /Item/SQL-Server-Store-More-Than-8000-WRITETEXT-UPDATETEXT-yongfa365.html - 80 - 59.125.118.13 Trend+Micro+Web+Protection+Add-On+1.10.1144 200 0 0找出上而面的行里的,不是以200 0 64结尾的行,然后删除,至于有什么用,这里就不多说了,我按上面的正则改造后是:
^(?!.*200 0 64).*$而我一直是这么测试的:
^(?!.*200 0 64)$
没有后边的.* 因为我觉得后边已经没有内容了,所以没写 .* 而不写就不对,写了才行,哪位高人可以再指点下。
^和(?!.*200 0 64),以及$这三部分都是零宽度的,按这样来写,结果还是零宽度的,当然是不对了
你是对(?!exp)这个表达式理解不够,找下这方面的资料看下吧另外^(?!.*123.123.123.10).*$ 这种方式虽然可以匹配到结果,但这样写是不对的,因为你把要匹配的范围扩大了
.是可以匹配\n以外的任意字符的,也就是说
kkk123a123b123c10sss
这样的符合条件的行也会被去掉的
明白了,(?!exp)前或后得有内容的,以前也想常想到过,只是觉得.*这个也可以是没有任何字符,没想到这样就可以了,
可以是没长度 != 一定没长度,而那三种都是一定没长度的情况。本来觉得自己 正则学的还不错,虽然感觉学的只是皮毛,没想到还是太皮毛了。