代码之家  ›  专栏  ›  技术社区  ›  Kevin Pimentel

如何抓取以双百分比符号开头和结尾的单词?

  •  0
  • Kevin Pimentel  · 技术社区  · 8 年前

    我对regex很不在行,我正努力做到以下几点:

    如何得到所有以 %% 是的。

    如果这些单词出现在一个字符串中,我希望能够抓住它们: %%HELLO_WOLD%% 我是说, %%STUFF%%

    到目前为止,我想到的是: %%[a-zA-Z0-9]\w+

    1 回复  |  直到 8 年前
        1
  •  1
  •   The fourth bird    8 年前

    您可以使用锚来断言开始 ^ 最后 $ 与任何字符的零次或多次匹配 .* 或者如果必须至少有一个字符 .+

    ^%%.*%%$

    或者代替 * 你可以添加你的角色类 [a-zA-Z0-9]+ 它将匹配小写和大写字符和数字,或者使用 \w+ 它将匹配 word character 是的。

    注意 角色类 [a-zA-Z0-9] 不匹配下划线和 \w 做。

    如果要在字符串中找到多个匹配项,可以使用 %%\w+%% .这也将匹配 %%HELLO_WOLD%% 在里面 %%%%%HELLO_WOLD%%% 是的。

    如果在开始和结束时只有2个百分号,那么可以使用正向展望 (?= 积极的观察 (?<= 断言2个百分比符号前后的内容不是百分比符号或是开始 ^ 或结束 $ 在绳子上。

    (?<=^|[^%])%%\w+%%(?=[^%]|$)

    推荐文章