java - Java正则表达式提取所有内容,但两个括号之间的内容
问题描述
我正在苦苦挣扎,并查找了许多资源。感谢您的时间和耐心。我想提取字符串中的所有内容,但两个括号之间的内容,包括括号本身。
Duck, Donald [CTO Enterprise] Mouse, Micky [HR Employee Engagement]
我只想拥有:
鸭子、唐老鸭、米奇
到目前为止,我一直在严重操纵
[A-Za-z, ][^\[(.*?)\]]
但无济于事。
谢谢你!!
解决方案
你可以试试:
\s*\[.*?[^\[]*\]
上述正则表达式的解释:
\s*
- 匹配任何空白字符(等于[\r\n\t\f\v ]
)零次或多次。
[.*?[^\[]*\]
- 从字面上匹配方括号并懒惰地匹配方括号内的所有内容。如果这也是您的要求,它甚至会替换嵌套的括号。
你可以在这里找到正则表达式的演示。
java中的实现:
public class Main
{
public static void main(String[] args) {
String str = "Duck, Donald [CTO Enterprise] Mouse, Micky [HR Employee Engagement]";
System.out.println(str.replaceAll("\\s*\\[.*?[^\\[]*\\]", ""));
}
}
// outputs: Duck, Donald Mouse, Micky
您可以在此处找到上述代码的示例运行。
推荐阅读
- java - 如何以空白行结束输入来停止 while 循环?
- html - 如何使用角度中的指令将日期输入格式化为自定义日期格式
- r - R 和 rhdf5:每个函数都抛出一个错误:来自 C 堆栈溢出的段错误
- c# - 父停靠时DataGridView隐藏列标题
- r - Winbugs:变化点的动态数量
- python - 我如何在 for 循环中使用 keras.Layer 的动态维度(无维度)?
- python - 使用 python 将大型 Dataframe 插入 Oracle DB
- string - 替换 XML 文件上的字符串 - 设置内容不起作用
- node.js - 使用 NodeJS 作为后端以及 Angular 作为前端读取上传的图像文件
- tfs-to-tfs-migration-tool - VS403265:数据迁移工具不支持集合的 Azure DevOps Server 里程碑:Azure DevOps Server 2020.0.1 (Dev18.M170.8)