SomeRandomText=%EXAMPLE1%,MoreRandomText=%%ONE%%!!%%TWO%%,YetMoreRandomText=%%THREE%%%FOUR%!!%FIVE%%%SIX%%
我需要一个正则表达式,它可以提取任何包装在"%%"中的内容 - 因此此正则表达式仅匹配以下内容:
- %%
- 一%% %%
- 二%% %%
- 三%% %%
- 六%%
我已经尝试了很多不同的方法,并且确信有一种方法可以实现这一目标 - 但我仍在努力。我主要最终得到它,它将匹配字符串中从第一个%%到最后一个%%的所有内容 - 这不是我想要的。我想我需要类似正向查找的东西,但很难实现
你需要
一个非贪婪的匹配,使用 ?
修饰符:
%%.*?%%
在线查看它的工作:rubular
这也可以通过限制%
之间允许的内容来完成。
%%[^%]*%%
但是,这比非贪婪匹配得到更广泛的支持 请注意,这与 %%A%B%% 不匹配。虽然,如有必要,这可以通过一些修改来完成:
%%([^%]|%[^%])*%%
或等效
%%(%?[^%])*%%