220 Welcome to TAP gateway for 263
ehlo ""
250-XFORWARD NAME ADDR PROTO HELO SOURCE
250-263.net
250-SIZE 47185920
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5
250 8BITMIME以上是我登录SMTP服务器后,使用ehlo指令后返回的内容,我希望用一个正则表达式取出这样的值:
我想取出从“250-AUTH”或者“250 AUTH”开头的行字符串里的所有登录类型我自己使用的是:“250[-|\x20]AUTH[=|\x20](?<ValiTypes>(\w|\x20|-)+).+”这个来取的,但是取出来后,后期处理比较多(又是split的,又是trim的)。感觉麻烦,同事也觉得自己对正则的理解太差,所以来这里求个更强大的正则用一下。希望同志们多多帮忙要求提供的正则达到如下要求:
如果是上面的返回字符串,则可以直接匹配出“PLAIN”“LOGIN”“CRAM-MD5”这些词。另外一个小问题:
如果我想取以某个字符串“XXX”开头的行里不包含“XXX”内容的正则怎么写?
ehlo ""
250-XFORWARD NAME ADDR PROTO HELO SOURCE
250-263.net
250-SIZE 47185920
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5
250 8BITMIME以上是我登录SMTP服务器后,使用ehlo指令后返回的内容,我希望用一个正则表达式取出这样的值:
我想取出从“250-AUTH”或者“250 AUTH”开头的行字符串里的所有登录类型我自己使用的是:“250[-|\x20]AUTH[=|\x20](?<ValiTypes>(\w|\x20|-)+).+”这个来取的,但是取出来后,后期处理比较多(又是split的,又是trim的)。感觉麻烦,同事也觉得自己对正则的理解太差,所以来这里求个更强大的正则用一下。希望同志们多多帮忙要求提供的正则达到如下要求:
如果是上面的返回字符串,则可以直接匹配出“PLAIN”“LOGIN”“CRAM-MD5”这些词。另外一个小问题:
如果我想取以某个字符串“XXX”开头的行里不包含“XXX”内容的正则怎么写?
解决方案 »
- .net 2.0 怎么使用扩展方法?网上找的貌似不好使~很多分哦 可加分
- 问个和Application.Run有关的问题
- 如何把内存表里的数据再按条件读取出来?
- 在该控件上执行的操作正被错误的线程调用。必须使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。
- C#怎样做数据(sql server2000)库备分?
- WinForm如何将ListView里的Items都取出来显示到另外一个ListView
- 在C#程序中向dbf文件插入时间类型数据问题
- 根据XML文件读取各节点信息生成TreeView
- 我打算在程序中实现监测注册表变化的程序,谁有这方面的经验?
- 急!谁能给我帮助?
- 如何理解C#三层架构!
- 问一个调用数据的问题
ehlo ""
250-XFORWARD NAME ADDR PROTO HELO SOURCE
250-263.net
250-SIZE 47185920
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5
250 8BITMIME
";
Regex reg = new Regex(@"(?m)(?<=250[-\x20]AUTH[=\x20](\S+\x20+)*)\S+(?=\x20+|$)");
MatchCollection mc = reg.Matches(test);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
//输出
PLAIN
LOGIN
CRAM-MD5
PLAIN
LOGIN
CRAM-MD5
这种写法是错的,[^xxx]最终表示的是任意一个不是“x”的字符
如果是[^abc]表示的是除“a”、“b”、“c”外的任意一个字符,虽然是任意,但只能是一个字符,排除的是字符,而不是字符序列如果我想取以某个字符串“XXX”开头的行里不包含“XXX”内容的正则怎么写?
(?m)^XXX(?:(?!XXX).)*$