Heim >Backend-Entwicklung >PHP-Tutorial >正则表达式 - 在php的正则中如何实现忽略转义匹配

正则表达式 - 在php的正则中如何实现忽略转义匹配

WBOY
WBOYOriginal
2016-06-06 20:51:431239Durchsuche

最近在写一个markdown语法解析程序,我遇到下面这种问题,比如我的加重字体语法是*ABC*,也就是说在字符外侧包含了两个*。我用正则可以很简单的写出表达式来。

但是如果我要加重的字里面就包含了*这个字符,我想用编程语言里的\反斜杠来转义忽略这个匹配,就像这样*AB\*C*。我只要匹配最外侧没有被转反斜杠标记转义的字符,这个用正则怎么写呢?

回复内容:

最近在写一个markdown语法解析程序,我遇到下面这种问题,比如我的加重字体语法是*ABC*,也就是说在字符外侧包含了两个*。我用正则可以很简单的写出表达式来。

但是如果我要加重的字里面就包含了*这个字符,我想用编程语言里的\反斜杠来转义忽略这个匹配,就像这样*AB\*C*。我只要匹配最外侧没有被转反斜杠标记转义的字符,这个用正则怎么写呢?

<?php $str = '*AB\*C*';
preg_match('/^[^\\\]*\*(.*[^\\\])\*$/isU',$str,$match);

print_r($match);
---------- PHP调试 ----------
Array
(
    [0] => *AB\*C*
    [1] => AB\*C
)

不知道是不是这个意思,匹配前后必须是*而非\*开头的字符串

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn