regex - 提取括号之间的所有字符
问题描述
我用了
let regExp = /\(([^)]+)\)/;
提取
(test(()))
从
aaaaa (test(())) bbbb
但我只得到这个
(test(()
如何修复我的正则表达式?
解决方案
不要使用否定字符集,因为括号((
和)
)可能会出现在您想要的匹配项中。而是贪婪地重复,以便您尽可能匹配,直到引擎回溯并找到)
右边的第一个:
console.log(
'aaaaa (test(())) bbbb'
.match(/\(.*\)/)[0]
);
请记住,这(以及一般的 JS 正则表达式解决方案)不能保证括号平衡,至少在没有额外的后处理/验证的情况下不能保证。
推荐阅读
- qt - QML中ApplicationWindow的MenuBar动态添加Menu
- spring - 是否可以使用 gradle 构建 vaadin 14 Spring 项目?
- django - 如何通过Django中的链接下载上传的文件
- openssl - 将代码从 openssl 1.0.1 迁移到 1.1.0 时前向声明错误
- regex - 如何在 bash 脚本中使用 Regex for Grep 选择图像 URL?
- ios - 如何在 UITextView 中显示数组中的文本,我可能只需要正确的字符串格式?
- c# - 访问空值导致应用程序失败/C#
- php - 1我尝试构建产品表单但记录无法插入数据库
- javascript - 我如何创建类别,例如如何?什么时候?为什么?对于某些视频会显示的大量文本?
- java - 如何使用'MOCKITO_CORE when'在junit测试用例中传递void返回类型