我试过寻找这个广泛的,有类似的问题,但我还没有能够弄清楚这一点。正则表达式,两个字符之间的一切除了逃脱字符
我的问题是,我有,等等,这种形式的字符串:
%Aliquam hendrerit mollis pretium! Praesent id%
%molestie \*libero vel\%\% pulvinar? Sed%
\%% urna. \% Fusce% in *sapien %mau\*ris.%
我想选择两个%s的一切,忽略其中的字符由\ preceeded情况。第一个是微不足道的,我有办法做第二个。第三个,但我无法弄清楚。为了澄清,从上面的文字我要选择以下内容:
“!%Aliquam hendrerit油树的Pretium Praesent ID%”
“%molestie *自由人韦尔\%\%枕桑达%?”
“%乌仁娜。\%Fusce%”
“%茅* RIS%”
要指出的是,原文可以是一个很长的字符串的一部分,而不换行,即每一行不一定出现在上面新的线路。
这到目前为止,我写了下面的正则表达式,这似乎是能够匹配除了最后一个一切:
(?<!\\)%([^%]*)(?!%\\)(?:%|(.*)%)(?<!\\%)
对于最后一个则选择:
“%乌仁娜\% Fusce%in * sapien%mau * ris。%“
这是太多了。我真的不明白为什么它会这样做,也许是因为我的正则表达式的条件?任何帮助深表感谢!
难道你不能在第二步中去掉转义字符吗?单曲/\\.// g'。而且我有点困惑,你是否想要忽略所有逃脱的字符,或只忽略百分号?您的问题表明预期结果与您的示例不同。 – knittl
问题是,逃脱的字符是允许的,所以我不能把它们去掉。我会编辑主要帖子,希望能够澄清混乱,对此感到抱歉!编辑:我编辑主要职位正确的例子,我想能够选择。 – Scheme