doumeng1897 2011-05-17 15:53
浏览 320
已采纳

从正则表达式的字符串中获取变量

i'm getting nuts with an regular expression. I have a string like this:

%closed% closed (%closed_percent%\%), %open% open (%open_percent%\%)

What I need is a regular expression that matches the following:

%closed%
%closed_percent%
%open%
%open_percent%

but not the two \%

At the moment I use:

\%([^\%]+)\%

that gives me:

%closed%
%closed_percent%
%), %
% open (%
...

Anyone can help me with that?

  • 写回答

5条回答 默认 最新

  • ds11111111111111111 2011-05-17 16:25
    关注

    The simple way:

    %\w+%
    

    Matches: %foo%

    Allows (multiple) backslash escapes:

    (?<!\\)(?:\\.)*%(\w+)%
    

    Matches only bar in: \%foo% \\%bar% \\\%baz%

    ...and this allows escapes inside of it too:

    (?<!\\)(?:\\.)*%((?:[^\\%\s]+|\\.)+)%
    

    Matches: %foo\%bar%

    Use the value of the first capturing group with the last two expressions.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!