![](/img/trans.png)
[英]java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[英]java.util.regex.PatternSyntaxException: Unclosed character class near index 44
这是我的代码,用于查找专有名词周围的相邻单词。 我收到下面提到的此代码的错误。 我尝试添加不同的排列以及反斜杠和右括号的组合,但仍然会收到错误。 将不胜感激。
for (String properNoun : properNouns){
Pattern pattern = Pattern.compile("([^\\s]+\\s+[^\\s]+)\\s+"+properNoun+"\\s+([^\\s]+\\s+[^\\s]+)\\s+");
Matcher matcher = pattern.matcher(sentence);
while (matcher.find()){
................
我得到的错误是:
线程“主”中的异常java.util.regex.PatternSyntaxException:
索引44附近的未封闭角色类
([^ \\ s] + \\ s + [^ \\ s] +)\\ s + [] \\ s +([^ \\ s] + \\ s + [^ \\ s] +)\\ s +
句子 -Cyprium Mining欣然宣布,在2016年9月21日举行的债券持有人特别会议(以下简称“会议”)上,持有人本金750,000美元的无抵押债券的持有人的年利率为12%(债券)。压倒性地批准了所有提出的事项,包括将到期日从2017年2月28日延长至2019年2月28日。
专有名词 -[[],[塞浦路斯],[2月],[债券],[9月]]
properNoun
值是[]
,这是一个字符类 ,它应该包含一些字符 ,如果要匹配[]
,则应对此进行转义,例如: \\\\[\\\\]
。
作为您的数据,也许您可以这样做:
Pattern pattern = Pattern.compile("([^\\s]+\\s+[^\\s]+)\\s+"+Pattern.quote(properNoun)+"\\s+([^\\s]+\\s+[^\\s]+)\\s+");
Pattern.quote :
返回指定字符串的文字模式字符串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.