roc*_*kit 9 javascript java regex
strOutput.replace("/{{[^]*?}}/g","");
Run Code Online (Sandbox Code Playgroud)
有没有办法将JavaScript正则表达式转换为Java安全正则表达式?
上面的陈述给了我错误:
Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
我不是那么熟悉正则表达式,所以我可以使用一些指导.
谢谢!
Viv*_*ath 13
摆脱正斜杠.你不需要Java中的那些.此外,Java的正则表达式无法识别像/g和的开关/i; 那些是由常数控制的java.util.regex.Pattern.
在Java世界中唯一有意义的Javascript正则表达式开关是/i和/m.这些映射到Pattern.CASE_INSENSITIVE和Pattern.MULTILINE(您可以在从Pattern类创建正则表达式时使用这些开关,或者您可以在内联使用它们 - 稍后我将对此进行说明).
在/g不映射到任何东西,但你可以控制使用替代行为String.replaceAll对String.replaceFirst.
要使代码工作,您必须执行以下操作:
strOutput.replaceAll("{{[^]*?}}", "");
Run Code Online (Sandbox Code Playgroud)
如果你想使用开关,你需要添加类似于(?i)正则表达式开头的东西.
你不能使用,String.replace因为它接受CharSequence第一个参数而不是正则表达式.
另请注意,课程提供的"快速正则表达式"方法String可能无法像您期望的那样工作.这是因为当你指定一个模式(例如abc)作为正则表达式时,matchesJava看到的实际模式是^abc$.所以abc会匹配,但bc不会.
有更多的信息在这里.