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

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

  • %%一%%
  • %%二%%
  • %%三%%
  • %%六%%

我尝试了很多不同的方法,并且确信有办法实现这一点——但我目前还在苦苦挣扎。我主要最终得到它,它将匹配字符串中从第一个 %% 到最后一个 %% 的所有内容——这不是我想要的。我想我需要像前向查找这样的东西,但很难实施

4

2 回答 2

2

您需要使用修饰符进行非贪婪匹配 :?

%%.*?%%

在线查看它:rubular

于 2012-12-05T08:27:48.620 回答
0

这也可以通过限制%s 之间允许的内容来完成。

%%[^%]*%%

这比非贪婪匹配得到更广泛的支持,但请注意,这不会匹配 %%A%B%%。虽然,如有必要,这可以通过一些修改来完成:

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

或等效地

%%(%?[^%])*%%
于 2012-12-05T09:54:11.353 回答