当前位置: 代码迷 >> VB Dotnet >> 求修改以正则caozhy版主请进,该怎么处理
  详细解决方案

求修改以正则caozhy版主请进,该怎么处理

热度:106   发布时间:2016-04-25 02:10:12.0
求修改以正则caozhy版主请进
(?<=function\s)\w (?=(\([^\)] \))|([^\(^\)] ))
上面的正则 , 发现Function Main()有括号但是没有参数的情况下,获取的函数名会少一个字符。
------解决思路----------------------
支取函数名
(?<=Function\s)[^\(\)]+(?=\()
------解决思路----------------------
(?i)(?<=function\s)\w+
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

(?i)(?<=function\s)\w+

这个可以,但是(?i)这个是做什么的没有作用也是一样。
不过不支持函数名中有下划线

错了 不是不支持下划线,是不支持function后面有2个空格


把 \s 换成 \s+
应该就行了。
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

(?i)(?<=function\s)\w+

这个可以,但是(?i)这个是做什么的没有作用也是一样。
不过不支持函数名中有下划线

错了 不是不支持下划线,是不支持function后面有2个空格

(?i)(?<=function\s+)\w+

(?i)表示忽略大小写
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

(?i)(?<=function\s)\w+

这个可以,但是(?i)这个是做什么的没有作用也是一样。
不过不支持函数名中有下划线

错了 不是不支持下划线,是不支持function后面有2个空格


把 \s 换成 \s+
应该就行了。

不行,那样 的话如果有end function ,那么就会把下一行的字符截取到


后边加上括号的截取试试
------解决思路----------------------
[^\)]后面加上*看看

------解决思路----------------------
试试这个:
dim result as string = Regex.Match(yourStr,"(?im)(?<=^function\s+)\w+").Value

------解决思路----------------------
dim result as string = Regex.Match(yourStr,"(?im)(?<=^\s*function\s+)\w+").Value


稍微修改一下,这个可以符合你要求。
估计你还要问,我直接回答你好了
(?im)
是模式描述,连续的是表示2个模式
i表示忽略大小写:IgnorCase的意思
m表示多行模式,意思^表示的为行首,不是文字的最开头。