假设我们有
function test1(
function t2 (
function test3asdfasd (
function(
function (
函数名只接受a-Z0-9然后有Left Parathensis 我想先匹配3,但不要匹配CSharp上的2last
感谢
答案 0 :(得分:4)
您可以在.NET中使用以下内容:
(?<=function\s*)[a-zA-Z0-9]+(?=\s*\()
(?<=function\s*)
:确保匹配的内容前面是文字字符串function
,然后是零个或多个\s*
个空格。[a-zA-Z0-9]*
:用于匹配函数名称。(?=\s*\()
:这用于确保前一部分匹配的字符串实际上是一个函数名称,确保它后跟一个打开的括号(
。在C#中,您可以使用Regex.Matches()
方法,如下所示:
string pattern = @"(?<=function\s*)[a-zA-Z0-9]+(?=\s*\()";
string sentence = "function hello()";
foreach (Match match in Regex.Matches(sentence, pattern))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
编辑:在Notepad ++中您需要将表达式更改为此表达式:
function\s*\K[a-zA-Z0-9]+(?=\s*\()
如果您的函数名称可以包含下划线_
,那么在字符类中包含下划线,如下所示:
[a-zA-Z0-9_]
^
编辑2:如果我的上一条评论是正确的,那么您可以稍微修改一下这些表达式:
(?<=^\s*function\s*)[a-zA-Z0-9]+(?=\s*\()
并在Notepad ++中:
^\s*function\s*\K[a-zA-Z0-9]+(?=\s*\()
答案 1 :(得分:1)
考虑以下Regex ......
function\s+[\w\d]+\s*\(
祝你好运!