我有正则表达式需要覆盖多行(从pascal文件中删除注释)
\(\*.*?\*\)|\{.*?\}|\/\/(.*$)
这几乎没问题,但
\(\*.*?\*\)
和
\{.*?\}
应该适用于多行,但仅适用于单行。如何使它们正常工作(并且不要制作
//(。* $)
为多行工作)
提前致谢
答案 0 :(得分:1)
您正在寻找Pattern.DOTALL
标志。将其传递给Pattern.compile
,如此:
Pattern p = Pattern.compile("regex", Pattern.DOTALL);
您也可以使用(?s)
在正则表达式中进行设置,例如:"(?s)regex"
答案 1 :(得分:1)
这将完全符合所有内容,包括换行符:
Pattern regex = Pattern.compile("[\\s\\S]*");