我正在寻找一个解析以下字符串的正则表达式:
My Name Here(123456789) some_code[some_other_code]
格式相对简单:
我想抓住所有四个:
以下正则表达式有效:
(.*?)\(([0-9]*)\) (.*?)\[(.*?)\]
问题在于,第一个“我的名字在这里”部分也可能包含我所知道的所有括号之间的数字......而不是“我的名字在这里”它可能是“尼克(123)(456)Abcd”。那不符合......
同样的正则表达式匹配:
Nick(123) (456) Abcd(123456789) some_code[some_other_code]
第一个捕获组现在只捕获“Nick”(虽然它应该捕获“Nick(123)(456)Abcd”)而第二组捕获123作为数字,而它应该捕获最后一次出现123456789。 / p>
换句话说,我只希望最后一次出现(([0-9] *))作为第二组而不是第一组......
我想我需要使用回顾或其他东西,但我不知道如何实现这个......任何想法?