提问人:sdavis891 提问时间:11/17/2023 更新时间:11/17/2023 访问量:43
正则表达式:查找括号之间的所有内容 - 包括括号是否存在于 [closed] 中
Regex: Find all between parenthesis - including if parenthesis exists within [closed]
问:
我正在研究一个正则表达式来提取类似 JS 的函数的原始字符串,我想在其中提取方法/函数名称和方法/函数的参数/参数:
.replace(“你好”, “世界”).trim().replace(“鸡肉”, “油炸”).upper()
正则表达式:\.(\w+)\((.*?)\)
这适用于上面的字符串......但是,如果周围有括号,则它不完全匹配。()
我一直在为正面和负面的展望/落后而苦苦挣扎,想知道这样的事情是否可能?
下面是一个示例,它不起作用:
.replace(/(测试)/g, “”).trim().replace(“”, “”).upper()
答:
0赞
Nicolas
11/17/2023
#1
正如 Wiktor 所说,专用解析器始终是此类处理的最佳选择。
但是,如果您仍然想使用正则表达式路由,您可以简单地添加一个积极的前瞻,以查找点、分号或字符串的末尾。
\.(\w+)\((.*?)\)(?=\.|$|;)
您可以在此处测试更多案例:https://regex101.com/r/QJ1h59/1
不过,这并不完美。如果调用中的正则表达式在括号后面使用点,则正则表达式将与正确的字符串不匹配。总会有这样的情况,你最好使用专用的解析器。
评论
1赞
sdavis891
11/17/2023
有趣的是,我几乎有这个确切的陈述,但没有意识到你可以以你所拥有的方式输入。你帮我解决了!$
评论