Java正则表达式删除“/**/&引用;及;{……};
我得到错误:“Java正则表达式删除“/**/&引用;及;{……};,java,regex,Java,Regex,我得到错误:“此正则表达式上的ECPE序列无效: (\/\*[^/*]*(?:(?!\/\*|\*\/)[/*][^/*]*)*\*\/)|(\{.*?\}) 是否还有其他更合适的正则表达式,或者我可以做些什么来修复此正则表达式?您需要再次避开反斜杠。这是Java字符串的“功能”。Java“消耗”“您编写的反斜杠,因为它可以识别诸如'\t'之类的特殊字符。例如,当它在正则表达式的开头看到“\/”时,它认为您在请求一个特殊字符,它会抱怨,因为该序列不适用于该目的。要在正则表达式中考虑反斜杠,需要
此正则表达式上的ECPE序列无效
:
(\/\*[^/*]*(?:(?!\/\*|\*\/)[/*][^/*]*)*\*\/)|(\{.*?\})
是否还有其他更合适的正则表达式,或者我可以做些什么来修复此正则表达式?您需要再次避开反斜杠。这是Java字符串的“功能”。Java“消耗”“您编写的反斜杠,因为它可以识别诸如'\t'之类的特殊字符。例如,当它在正则表达式的开头看到“\/”时,它认为您在请求一个特殊字符,它会抱怨,因为该序列不适用于该目的。要在正则表达式中考虑反斜杠,需要“\\” 也就是说,处理注释和大括号的整个方法通常不会起作用,因为它在处理大括号中的嵌套块等各种情况时会遇到问题。(仅举其中一个例子。) 这是正确的正则表达式,您错过了转义表示正则表达式序列开始和结束的正斜杠
这里有一个简化版本
(\/\*.\*\/\\\\{.*})
再次跳过所有反斜杠。也许“(?s)/\*.*.*/\\\\{.*}”
就足够满足您的需要了。
(\/\*[^\/*]*(?:(?!\/\*|\*\/)[\/*][^\/*]*)*\*\/)|(\{.*?\})