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)
提前致谢!
尝试
prefix\/(.+?)\/?(?:suffix|$)
Run Code Online (Sandbox Code Playgroud)
正则表达式需要知道匹配何时完成,因此匹配行的任 suffix一行或结尾($),并使捕获非贪婪.