【问题标题】:Java Regex match string if the patterns ends with ; or nothing [duplicate]如果模式以 ; 结尾,则 Java 正则表达式匹配字符串或者什么都没有[重复]
【发布时间】:2019-09-18 06:06:58
【问题描述】:

[发布这个问题是因为我找不到任何符合我的场景的问题,如果已经讨论过,请指出我的帖子,我将删除这个帖子。]

尝试创建一个正则表达式以匹配由,; 分隔的长字符串中的字符串app=myApp

如果模式已结束且未被,; 终止,我的正则表达式将失败。

这是我使用的正则表达式:[^.][app|APP]=(.*?)[,|;] 适用于以下字符串:

  1. env=prod;app=myApp;app.secure=yes
  2. app=myApp;app.secure=yes

但不适用于以下:

  1. env=prod;app=myApp
  2. app=myApp

这是我的代码:

 Pattern pattern = Pattern.compile("[^.][app|APP]=(.*?)[,|;]");
 Matcher matcher = pattern.matcher(stringVar);
 if (matcher.find()) {
      return matcher.group(1);
 }

我也试过: [^.][app|APP]=(.*?)[,|;|$] 但仍然没有运气。

【问题讨论】:

    标签: java regex


    【解决方案1】:

    尝试正则表达式:(?:app|APP)=(.*?)(?=,|;|$)

    Demo

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 2016-10-21
      • 1970-01-01
      • 2015-08-01
      相关资源
      最近更新 更多