Regex("asiatelecom_\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}_\\d{14})(\\w{6})$")

huahua_asic 2010-01-06 02:14:47
Regex r = new Regex("asiatelecom_\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}_(\\d{14})(\\w{6})$");

我想知道上面的正则表达式后面的“()”括号是什么意思啊?比如我要比较这个字符串:

asiatelecom_10.2.9.8.11_20100106545454_AT9052

符合上面的正则表达式规则么?
...全文
244 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
huahua_asic 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 liherun 的回复:]
aisatelecom_61.150.43.146_20100106112854AT9052
老大 你第一个单词打错了
asiatelecom

[/Quote]
谢了啊 我以为是我自己把程序写错了 原来是疏忽了 打错字了 非常感谢~
liherun 2010-01-06
  • 打赏
  • 举报
回复
能复制就复制吧,别手敲了
liherun 2010-01-06
  • 打赏
  • 举报
回复
aisatelecom_61.150.43.146_20100106112854AT9052
老大 你第一个单词打错了
asiatelecom
huahua_asic 2010-01-06
  • 打赏
  • 举报
回复
aisatelecom_61.150.43.146_20100106112854AT9052

这个为什么匹配不成功呢?
liherun 2010-01-06
  • 打赏
  • 举报
回复
string str = "asiatelecom_10.209.8.11_20100106545454AT9052";
Regex r = new Regex("asiatelecom_\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}_(\\d{14})(\\w{6})$");
Console.WriteLine(r.Match(str).Value);
Console.WriteLine(r.Match(str).Groups[1].Value);//可以匹配到 第一个()里的 \\d{14} 结果是 20100106545454
Console.WriteLine(r.Match(str).Groups[2].Value);//可以匹配到 第一个()里的 \\w{6} 结果是 AT9052
Console.Read();
huahua_asic 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liherun 的回复:]
你的正则少了个  _
C# codeRegex r=new Regex("asiatelecom_\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}_(\\d{14}) (\\w{6})$");

[/Quote]
不好意思 是我太粗心了 写错了 我要匹配的内容里后面没有那个_。应该是:
asiatelecom_10.209.8.11_20100106545454AT9052
liherun 2010-01-06
  • 打赏
  • 举报
回复
static void Main(string[] args)
{
string str = "asiatelecom_10.209.8.11_20100106545454_AT9052";
Regex r = new Regex("asiatelecom_\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}_(\\d{14})_(\\w{6})$");
Console.WriteLine(r.Match(str).Value);
Console.WriteLine(r.Match(str).Groups[1].Value);//可以匹配到 第一个()里的 \\d{14} 结果是 20100106545454
Console.WriteLine(r.Match(str).Groups[2].Value);//可以匹配到 第一个()里的 \\w{6} 结果是 AT9052
Console.Read();
}
liherun 2010-01-06
  • 打赏
  • 举报
回复
你的正则少了个 _
Regex r = new Regex("asiatelecom_\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}_(\\d{14}) (\\w{6})$");

liherun 2010-01-06
  • 打赏
  • 举报
回复
()是非命名捕获组 可以捕获到()中匹配的内容
huahua_asic 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 angel6709 的回复:]
可以配
括弧是优先循序
就像1+2*3==1+(2*3)
[/Quote]
Regex r = new Regex("asiatelecom_\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}_\\d{14}\\w{6}$"); 我把括弧去掉应该不会出错吧?asiatelecom_10.209.8.11_20100106545454_AT9052 照样可以匹配?还有为什么是两个反斜杠呢?
angel6709 2010-01-06
  • 打赏
  • 举报
回复
可以配
括弧是优先循序
就像1+2*3==1+(2*3)
huahua_asic 2010-01-06
  • 打赏
  • 举报
回复
不好意思 写错了 因该是

asiatelecom_10.209.8.11_20100106545454_AT9052

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧