【问题标题】:match string inside quotes having at-least 1 uppercase char匹配包含至少 1 个大写字符的引号内的字符串
【发布时间】:2015-08-23 13:10:03
【问题描述】:

我的 java 文件中有一些字符串行,并尝试进行 Eclipse 正则表达式搜索,但它不起作用。我想在 RequestParam(value = 之后突出显示字符串中包含大写字符的行 所以从下面 3 行开始,只有中间的一行应该匹配,即 RequestParam(value = "someNumber") 其中包含大写的“N”。

public Response searchA(@RequestParam(value = "_s", required = true) String searchExpression,
public Response getNumber(@RequestParam(value = "someNumber", required = true) String agencyNumber,
public Response getStuff(@PathVariable("id") String asnId, @RequestParam(value = "customerid") String customerId, 

我形成了一个正则表达式,它似乎适用于 regex101,但不适用于 eclipse。 https://regex101.com/r/vV8uQ3/16

【问题讨论】:

    标签: java regex eclipse pattern-matching


    【解决方案1】:

    这应该可以在 Eclipse 搜索中使用:

    RequestParam *\( *value *= *"[^"\nA-Z]*[A-Z][^"\n]*"
    

    RegEx Demo

    确保在 Eclipse 搜索中选中 case sensitiveregex 复选框。

    【讨论】:

    • 它有效,但你能解释一下这个正则表达式吗?似乎比我预期的要复杂。
    • 其实并不复杂。大多数<space>* 用于匹配0 个或多个空格。 "[^"\nA-Z]* 匹配一个引号,然后匹配 0 个或多个除大写字母或引号之外的任何字符。 [A-Z] 匹配大写字母。 [^"\n]* 匹配除引号后跟引号之外的任何内容。我的演示链接也有一些解释。
    【解决方案2】:

    刚刚在 Eclipse 中测试了你的正则表达式。如果在查找对话框中启用了复选框“区分大小写”和“正则表达式”,它的工作方式正确

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 2014-05-02
      • 1970-01-01
      相关资源
      最近更新 更多