如果模式以 ; 结尾,则 Java 正则表达式匹配字符串或者啥都没有[重复]

Posted

技术标签:

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

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

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

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

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

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

但不适用于以下:

    env=prod;app=myApp app=myApp

这是我的代码:

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

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

【问题讨论】:

【参考方案1】:

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

Demo

【讨论】:

以上是关于如果模式以 ; 结尾,则 Java 正则表达式匹配字符串或者啥都没有[重复]的主要内容,如果未能解决你的问题,请参考以下文章

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

正则匹配开头为''结尾为','应该怎么写?

如何编写正则表达式模式以匹配字符串结尾或字符串开头的货币符号

scrapy的启动及正则表达式