带有前缀和可选后缀的正则表达式

ole*_*exd 2 java regex regex-greedy

这可能是关于SO的正则表达式可选后缀的100 + 1问题,但我没有找到任何,这可以帮助我:(

我需要从常见模式中提取字符串的一部分:

prefix/s/o/m/e/t/h/i/n/g/suffix
Run Code Online (Sandbox Code Playgroud)

使用正则表达式.该前缀是常数和后缀可能不会出现在所有的,所以prefix/(.+)/suffix不符合我的要求.模式prefix/(.+)(?:/suffix)?返回s/o/m/e/t/h/i/n/g/suffix.这部分(?:/suffix)?必须更加贪婪.

我想s/o/m/e/t/h/i/n/g从这些输入字符串中获取:

prefix/s/o/m/e/t/h/i/n/g/suffix
prefix/s/o/m/e/t/h/i/n/g/
prefix/s/o/m/e/t/h/i/n/g
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Sam*_*han 6

尝试

prefix\/(.+?)\/?(?:suffix|$)
Run Code Online (Sandbox Code Playgroud)

正则表达式需要知道匹配何时完成,因此匹配行的 suffix一行或结尾($),并使捕获非贪婪.

在regex101上查看.