【问题标题】:Java pattern multiline matching on java fileJava文件上的Java模式多行匹配
【发布时间】:2013-01-15 14:52:24
【问题描述】:

我需要提取以下模式:

public void convert(String sourceName, String destName,
        ProgressListener progressListener, Decoder.Params decoderParams)
        throws JavaLayerException

或者它可以有

的形式
public void convert(String sourceName, String destName)

public void convert(String sourceName, String destNam)
        throws JavaLayerException

我正在使用以下模式,但该模式仅识别第 2 个原型,而不是第 1 个和第 3 个原型。 正在使用的模式是:

Pattern exp = Pattern.compile("([^(\n\t]*)"+Pattern.quote(obracket)+"([^()\n\t]*)"+Pattern.quote(cbracket));
where obracket="(" and cbracket=")";

任何建议或帮助将不胜感激。

【问题讨论】:

  • 那么,您是在使用 Java 来读取和解析用 Java 编写的文件吗?这似乎是一种相当大的代码气味。你到底想完成什么?
  • 正如杰克指出的那样,你是在试图解析这个...

标签: java regex multiline


【解决方案1】:

您可以将此正则表达式与singleline 模式一起使用..

\\s+(public|private|protected)?\\s+\\w+\\s+[\w$]+\\([^()]*\\)\\s+(throws\\s+[\\w$]+)?

【讨论】:

  • singleline 是指DOTALL 模式?或者你是说设置MULTILINE模式?无论如何都没关系,因为您的正则表达式中的任何内容都不受DOTALLMULTILINE 或模式的影响。
猜你喜欢
  • 2023-04-02
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-28
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多