我正在尝试搜索此字符串“Spelled [wurd] Show IPA noun 1.a”
并使用以下方法删除 [ ] 之外的所有内容:
String pron = noHTML.replaceAll("\\[.*?]",""); //(there is a double \\ \\ here...)
这取代了里面的一切..如何扭转它?:S
我试过组合!和 ^ 但它似乎没有工作。
我只需将整个字符串替换为括号中的部分:
String pron = noHTML.replaceAll(".*?\\[(.*?)\\].*", "$1");
这 (1) 匹配整个字符串,(2) 捕获括号中的部分并将其存储在第一个捕获组中,并且 (3) 使用该组作为整个匹配字符串的替换。
在结果中包含括号只是一个问题或()
向外移动一点:
String pron = noHTML.replaceAll(".*?(\\[.*?\\]).*", "$1");
试试这个 -
String pron = noHTML.replaceAll("(^.*\\[)|(\\].*$)","");
要包含括号,请使用前瞻和后视-
String pron = noHTML.replaceAll("(^.*(?=\\[))|((?<=\\]).*$)","");
有关lookahead和lookbehind的更多信息,请参阅http://www.regular-expressions.info/lookaround.html