我需要一个正则表达式,它将函数签名作为输入并返回函数的名称,即我可能有以下输入:
FUNCTION(A,B,C)
并应用以下正则表达式后:
^(.*?)(?=\()
我正确地按预期获得了“功能”一词。
但是,有时候我可以得到函数的名称而没有括号(因此没有参数),如下所示:
FUNCTION
在这种情况下,之前的正则表达式失败并且不采用名称。有没有办法定义一个正则表达式,如果它找不到第一个正则表达式,尝试另一个正则表达式? (在这种情况下,将采取整个输入。)
答案 0 :(得分:2)
答案 1 :(得分:1)
^(.*?)(?=\(|\s*$|\s)
这应该为你做。你需要使用|
或运营商。
\s*$
===如果你有0个或更多的空格然后字符串结束则停止
\s
====停在第一个空格实例
答案 2 :(得分:0)
^([^)]+)\s*\(?
可以做你想做的事。
说明:
([^(]+)
:一个或多个不是的字符(
\s*
:可能是一些空格
\(?
:选项括号