我需要询问在Java String中删除括号和文本.例如,我有
String str = "I am a new (Software) Engineer"
现在的问题是,如何在不使用的情况下删除子串"(软件)"
str.replace("(software)", "")
因为可能在下一个字符串中我会得到"我是一个新的(电气)工程师"或"(机械")或类似的东西.
所以我怎么能这样做,我认为一种方法是获得索引"("和")"并通过使用索引删除/替换它们但我希望有一些更短的方法来做到这一点
Boh*_*ian 25
使用正则表达式匹配括号中的任何内容:
str = str.replaceAll("\\(.*?\\) ?", "");
请注意,括号必须进行转义,并且转义字符\本身必须在String中转义,因此需要双反斜杠.
该术语.*?是一个不情愿的匹配,这意味着如果输入中有两个括号内的术语,它将不会一直跳到最后一个括号,即"a(foo)b(bar)c"将成为"a c" .*使用,因为它将消耗从第一个开放括号到最后一个关闭括号的所有内容.
我在末尾添加了一个可选空格,这样一旦删除了插入的术语,就不会留下两个相邻的空格.
| 归档时间: | 
 | 
| 查看次数: | 8180 次 | 
| 最近记录: |