正则表达式查找%% {ANYTHING} %%的多个实例

时间:2012-12-05 08:27:02

标签: regex

SomeRandomText=%EXAMPLE1%,MoreRandomText=%%ONE%%!!%%TWO%%,YetMoreRandomText=%%THREE%%%FOUR%!!%FIVE%\%%SIX%%

我需要一个正则表达式,它可以提取包含在'%%'中的任何内容 - 所以这个正则表达式只匹配以下内容:

  • %% ONE %%
  • %% TWO %%
  • %% THREE %%
  • %% SIX %%

我已经尝试了很多不同的方法,并且我确信有一种方法可以实现这一目标 - 但我还在努力。我最终得到它将匹配从字符串中的第一个%%到最后一个%%的所有内容 - 这不是我想要的。我认为我需要像正向查找这样的东西,但努力实现

2 个答案:

答案 0 :(得分:2)

您需要non-greedy匹配,使用?修饰符:

%%.*?%%

查看在线工作:rubular

答案 1 :(得分:0)

这也可以限制%之间允许的内容。

%%[^%]*%%

然而,这比非贪婪匹配更受支持  请注意,这与%% A%B %%不匹配。虽然如有必要,可以通过一些修改来完成:

%%([^%]|%[^%])*%%

或等效

%%(%?[^%])*%%