我的错误:“Invalid ecape sequence
在这个表达式:Java的正则表达式删除 “/*....*/” 和 “{} .....”
(\/\*[^/*]*(?:(?!\/\*|\*\/)[/*][^/*]*)*\*\/)|(\{.*?\})
是否还有其他的正则表达式是是更合适的,或者我该怎么办才能修复这个正则表达式?
我的错误:“Invalid ecape sequence
在这个表达式:Java的正则表达式删除 “/*....*/” 和 “{} .....”
(\/\*[^/*]*(?:(?!\/\*|\*\/)[/*][^/*]*)*\*\/)|(\{.*?\})
是否还有其他的正则表达式是是更合适的,或者我该怎么办才能修复这个正则表达式?
你需要再次逃避反斜杠像'\ t'这样的特殊字符,当它看到你的正则表达式的开始时,例如'\ /',它就会认为你在寻找一个特殊的字符,并且它会抱怨,因为这个序列对于这个目的是无效的。 o在正则表达式中考虑反斜杠,你需要'\\'。
这就是说,处理注释和大括号的整个方法通常不起作用,因为它会遇到各种情况,比如花括号中的嵌套块。 (仅举许多之一。)
(\/\*[^\/*]*(?:(?!\/\*|\*\/)[\/*][^\/*]*)*\*\/)|(\{.*?\})
这是正确的正则表达式,你错过了逃跑的斜线代表一个正则表达式序列的开始和结束。
这是一个简化版本(\/\*.*\*\/|\{.*\})
再次转义所有反斜杠。 –
也许'“(?s)/\\*.*?\\*/ | \\ {。*?}”'就足够满足您的需求。 –