我想要匹配这些内容
_T('收到我');
_T("双引号();");
_T("双引号,我有两个参数",1);
_T("收到双引号,我有三个参数","第二个",'男');
用_T(([^)]*));匹配时得到
共找到 4 处匹配:
_T('收到我');
_T("双引号();
_T("双引号,我有两个参数",1);
_T("收到双引号,我有三个参数","第二个",'男');
在第二行只能得到 _T("双引号();,不能的得到_T("双引号();");
请问大佬们该怎么解决?
参考GPT和自己的思路:
针对这个问题,可以使用正则表达式的“零宽度断言”来解决嵌套括号的匹配问题。具体的正则表达式如下:
\_T\((?>[^()]+|\((?<>)|\)(?<->)|(?<ce>)\))*\)(?(ce)(?!))
该正则表达式的解释如下:
这个正则表达式可以正确地匹配所有给出的测试用例,包括嵌套的括号和单引号、双引号混合的情况。