对于正则表达式我真的很糟糕 - 没有足够的时间来正确学习它。
我正在尝试查找字符串中包含%% %%的所有元素 - 例如:
%%画廊%%
知道正则表达式会在这里做什么工作吗?
我稍后会在PHP中使用它来用相关的插件替换占位符。
答案 0 :(得分:3)
preg_replace("/%%\w+%%/", "replacement", "string");
答案 1 :(得分:2)
像/%%[a-z]+%%/i
这样的东西会起作用。
[a-z]+
部分告诉a-z之间应该有多个字符(+),用%s包围。 / i使其不区分大小写。
答案 2 :(得分:2)
一个正则表达式是:
%%(.*?)%%
如:
$string = preg_replace('/%%(.*?)%%/', '{replacement for $1}', $string);
.*
匹配“任何”,?
使其成为非贪婪的匹配,这意味着它会尝试尽可能短地找到匹配项。如果你有一个像"%%a%% %%b%%"
这样的字符串,你不希望它找到最长的匹配,这可能是a%% %%b
。
%%a%% %%b%% # Greedy
^^^^^^^
%%a%% %%b%% # Non-greedy
^ ^
替换字符串中的$1
是匹配的标记。在您的示例中,单词gallery
。
答案 3 :(得分:1)
(?<!%)%%([^%]+)%%(?!%)
这与%% %%%完全匹配。这是非贪婪的匹配也正确的内容,如'Lorem ipsum %% sample %% lorem %%% ipsum %%%等等。