VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: japanshit

正则表达式。网上找了了很久都没有答案!在线求教

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-12 20:30:01 | 显示全部楼层
是这样的,我写一表达式,匹配所有的C#里面的注释
//safdjkas;fjasfj乱七八糟的注释
//
  
   //

  /// <sumary>
  ///  这里的东西我不要匹配
  /// </summary>
  public class TessClass//这里是乱写的注释
  {//这里也是注释
          public string f()//很多写的注释嘛,当然有点乱
          {
               return "";//鬼才知道他注释写在哪里哟
          }     //真是一切皆有可能
  }
  //    好不容易才写完注释
______________________________________
1)只匹配双斜杠的注释,不要匹配三斜杠的摘要!(说白点,就是要替换程序中的注释)

你们写的我试了一下,在EditPlus和VS2005中的查找(上面提供了一个正则表达式匹配查找)试了一下,结果你们写的都不匹配。

我的疑问:
昨晚我以为是我写的表达式有问题,现在看来是他们可能没有提供匹配非获取的功能(就是(?|pattern)),反正用上了(?!pattern)和(?=pattern)就什么也取不到了。
----------------------------------------------------------------
请大家请试一下,是不是在EditPlus和VS2005中的查找不提供(?=pattern)等匹配呀?

今晚9点前结贴,谢谢大家的帮助!
回复

使用道具 举报

0

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-6-13 18:15:01 | 显示全部楼层
你想用一个正则 匹配整个文件? 好大的胃口啊
一行行匹配不行啊?
//我的那个匹配一行是没问题的,我改一下,看能匹配整个文件不
回复

使用道具 举报

0

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-6-14 11:45:01 | 显示全部楼层
//([^/]*?)\r\n

(mutiline|ignore)

你测一下看看。
回复

使用道具 举报

0

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-6-15 09:15:01 | 显示全部楼层
StreamReader sr=new StreamReader("..\\..\\复件 Form1.cs");
string str=sr.ReadToEnd();
Regex reg=new Regex("((?<=[^/])|^)//(([^/].*)|$)",RegexOptions.Multiline);
string a="";
foreach(Match m in reg.Matches(str))
{
        a=m.Value;
        a="";
}//刚测的应该没问题
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-6-17 01:15:02 | 显示全部楼层
各位专家:
        帮个忙,小弟有个问题是关于SPI拦截网络封包技术的,我现在已经拦截到了数据包,放到了文件中,但不知道如何过滤数据包了,我是用c++写的!请各位专家指点!!!非常感谢!!
回复

使用道具 举报

0

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-6-20 21:15:01 | 显示全部楼层
楼上的楼上给出的代码已经可以解决你的问题了
我以为是你要提取的,结果是你要替换的,按你的要求,我写的正则只要稍稍改变下形式就可以胜任了,看你需要哪种形式的了

yourStr = ...........;
string resultStr = Regex.Replace(yourStr, "(.*?(?<!/))(//(?!/).*)", "$1", RegexOptions.IgnoreCase);

EditPlus我没试过。
回复

使用道具 举报

0

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-6-22 23:45:01 | 显示全部楼层
我那个可以提取并可替换
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-23 22:15:02 | 显示全部楼层
adfafffdaa........   取aa........

以上所有方法都不行,包括:

(.*?(?<!/))(//(?!/).*)

((?<=[^/])|^)//(([^/].*)|$

^[^a]*?(aa(?!a).*)|[^a](aa[^a]*?)$

(?=[^a]*)aa[^a]*$

.*?(?<!a)(aa(?!a).*)

签定完毕
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-6-24 23:30:02 | 显示全部楼层
一行行读出来,然后一行行来进行匹配,我的那个也应该可以..

另外如果你是想匹配所有的注释,那为什么没有考虑"/*...*/"的情况呢?
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-25 13:45:01 | 显示全部楼层
楼上的你用什么测的
^[^a]*?(aa(?!a).*)|[^a](aa[^a]*?)$
这个方法虽没有linhanerror的((?<=[^a])|^)aa(([^a].*)|$好
但测单行没有问题,我在MTracer上调试的
下班了,不写了,推荐linhanerror的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表