求一个正则表达式

booirror 2017-01-20 08:08:25
input = "\\ a =3;\r\n b = 4;"
即input的内容是两行代码,第一行是注释

现在我想写一个pattern,只匹配第二行代码b=4,不要匹配到注释的那行。

请问这个pattern怎么写
...全文
150 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stherix 2017-01-21
  • 打赏
  • 举报
回复
引用 7 楼 booirror 的回复:
[quote=引用 5 楼 stherix 的回复:] [quote=引用 4 楼 booirror 的回复:] [quote=引用 3 楼 stherix 的回复:] [quote=引用 2 楼 booirror 的回复:] [quote=引用 1 楼 stherix 的回复:] (?<=\n).* 取第一个换行符后面的内容就是了
我没有说清楚,实际上不仅仅两行,有很多行。[/quote] 你的意思是有很多行,其中有很多注释+代码 这种类型的? (?<=//[^\n]+\n)[^\n]*[/quote] 给你一个例子吧: input="\\ a =3;\r\n b = 4;\r\nc=5;\r\nd=5;\r\n \\d=b;" 把没有注释的一行行匹配出来,你这个只能匹配紧靠\\后的下一行。[/quote] 你的描述不完整 ^((?!//).)*$[/quote] 我试了下,不行啊,你试试看[/quote] (?m)^((?!//).)*$ 前面加个(?m)吧 ^$得能匹配换行位置才行
booirror 2017-01-21
  • 打赏
  • 举报
回复
引用 5 楼 stherix 的回复:
[quote=引用 4 楼 booirror 的回复:] [quote=引用 3 楼 stherix 的回复:] [quote=引用 2 楼 booirror 的回复:] [quote=引用 1 楼 stherix 的回复:] (?<=\n).* 取第一个换行符后面的内容就是了
我没有说清楚,实际上不仅仅两行,有很多行。[/quote] 你的意思是有很多行,其中有很多注释+代码 这种类型的? (?<=//[^\n]+\n)[^\n]*[/quote] 给你一个例子吧: input="\\ a =3;\r\n b = 4;\r\nc=5;\r\nd=5;\r\n \\d=b;" 把没有注释的一行行匹配出来,你这个只能匹配紧靠\\后的下一行。[/quote] 你的描述不完整 ^((?!//).)*$[/quote] 我试了下,不行啊,你试试看
EnForGrass 2017-01-21
  • 打赏
  • 举报
回复
其实可以用Regex.Replace,把注释行匹配到,替换成空字符串就OK input = Regex.Replace(input, @"\\\\[^;]*?;","");
stherix 2017-01-20
  • 打赏
  • 举报
回复
引用 4 楼 booirror 的回复:
[quote=引用 3 楼 stherix 的回复:] [quote=引用 2 楼 booirror 的回复:] [quote=引用 1 楼 stherix 的回复:] (?<=\n).* 取第一个换行符后面的内容就是了
我没有说清楚,实际上不仅仅两行,有很多行。[/quote] 你的意思是有很多行,其中有很多注释+代码 这种类型的? (?<=//[^\n]+\n)[^\n]*[/quote] 给你一个例子吧: input="\\ a =3;\r\n b = 4;\r\nc=5;\r\nd=5;\r\n \\d=b;" 把没有注释的一行行匹配出来,你这个只能匹配紧靠\\后的下一行。[/quote] 你的描述不完整 ^((?!//).)*$
booirror 2017-01-20
  • 打赏
  • 举报
回复
引用 3 楼 stherix 的回复:
[quote=引用 2 楼 booirror 的回复:] [quote=引用 1 楼 stherix 的回复:] (?<=\n).* 取第一个换行符后面的内容就是了
我没有说清楚,实际上不仅仅两行,有很多行。[/quote] 你的意思是有很多行,其中有很多注释+代码 这种类型的? (?<=//[^\n]+\n)[^\n]*[/quote] 给你一个例子吧: input="\\ a =3;\r\n b = 4;\r\nc=5;\r\nd=5;\r\n \\d=b;" 把没有注释的一行行匹配出来,你这个只能匹配紧靠\\后的下一行。
stherix 2017-01-20
  • 打赏
  • 举报
回复
引用 2 楼 booirror 的回复:
[quote=引用 1 楼 stherix 的回复:] (?<=\n).* 取第一个换行符后面的内容就是了
我没有说清楚,实际上不仅仅两行,有很多行。[/quote] 你的意思是有很多行,其中有很多注释+代码 这种类型的? (?<=//[^\n]+\n)[^\n]*
booirror 2017-01-20
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
(?<=\n).* 取第一个换行符后面的内容就是了
我没有说清楚,实际上不仅仅两行,有很多行。
stherix 2017-01-20
  • 打赏
  • 举报
回复
(?<=\n).* 取第一个换行符后面的内容就是了

111,098

社区成员

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

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

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