(?<=function\s)\w (?=(\([^\)] \))|([^\(^\)] ))
上面的正则 , 发现Function Main()有括号但是没有参数的情况下,获取的函数名会少一个字符。
------解决思路----------------------
支取函数名
(?<=Function\s)[^\(\)]+(?=\()
------解决思路----------------------
(?i)(?<=function\s)\w+
------解决思路----------------------
把 \s 换成 \s+
应该就行了。
------解决思路----------------------
(?i)(?<=function\s)\w+
这个可以,但是(?i)这个是做什么的没有作用也是一样。
不过不支持函数名中有下划线
错了 不是不支持下划线,是不支持function后面有2个空格
(?i)(?<=function\s+)\w+
(?i)表示忽略大小写
------解决思路----------------------
(?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表示多行模式,意思^表示的为行首,不是文字的最开头。