如果模式以 ; 结尾,则 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 正则表达式匹配字符串或者啥都没有[重复]的主要内容,如果未能解决你的问题,请参考以下文章
求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式
求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式
求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式