Regex 提取出现在第一个冒号之前的最后一个左括号之前的文本

Regex 提取出现在第一个冒号之前的最后一个左括号之前的文本,regex,Regex,我有包含冒号和许多对括号的stings。以下是一些示例: hello(string1)(string2):string3:string4 foo(string1):string2 foo(string1)(string2):(string3) 我希望字符串的所有内容都在左括号之前出现在第一个冒号之前。上述字符串示例的输出必须如下所示: hello(string1) foo foo(string1) 我使用了^.*(?=:)来获取出现在第一个冒号之前的所有内容(:)。现在我需要得到最后一个左括

我有包含冒号和许多对括号的stings。以下是一些示例:

hello(string1)(string2):string3:string4
foo(string1):string2
foo(string1)(string2):(string3)
我希望字符串的所有内容都在左括号之前出现在第一个冒号之前。上述字符串示例的输出必须如下所示:

hello(string1)
foo
foo(string1)
我使用了
^.*(?=:)
来获取出现在第一个冒号之前的所有内容(
)。现在我需要得到最后一个左括号前的所有内容

您就快到了


下面是查找冒号后面的括号的展望:
(?=\([^)]*\):)

尝试以下正则表达式:

^.*(?=\(.*\):)
它匹配任何后跟
\(.*):
,这是您所需要的。

您可以使用
^.*(?=\([^\)]+\:)

请注意,这需要存在
(至少在末尾)。如果没有冒号,则不会有匹配项