Php 每边几个特殊字符之间的preg_匹配字符串

Php 每边几个特殊字符之间的preg_匹配字符串,php,regex,Php,Regex,我试图去除MathJax分隔符之间包含的所有文本,例如$str1=blah blah\(2*(2+2)=8\)blah blah\[\int\u 0^1f=[f]\u 0^1\] 正如您可能已经指出的,分隔符是\(…\)和\[…\],而..部分可能包含任何字符()[]\ 仅考虑到\[…\]的情况,我尝试了这个方法 $text = preg_replace("/\\\[.*\\\]/","",$text); 但由于某些原因,它与我的表达式不匹配 $text = preg_replace("/.\

我试图去除MathJax分隔符之间包含的所有文本,例如
$str1=blah blah\(2*(2+2)=8\)blah blah\[\int\u 0^1f=[f]\u 0^1\]

正如您可能已经指出的,分隔符是
\(…\)
\[…\]
,而
..
部分可能包含任何字符
()[]\

仅考虑到
\[…\]
的情况,我尝试了这个方法

$text = preg_replace("/\\\[.*\\\]/","",$text);
但由于某些原因,它与我的表达式不匹配

$text = preg_replace("/.\[.*\\\]/","",$text);
确实匹配我的表达式(但也匹配一些不需要的表达式,如
a[…\]

所以我的问题有两个:

  • \\\[
    有什么问题吗
  • 我能做的比.*中的更好吗?它会说“有一个<代码> \代码>或<代码> <代码>,但没有<代码> \>代码>

  • 提前感谢!

    这里有一个正则表达式,它将匹配任何一个分隔符:

    preg_replace('/\\[\[\(].*?\\[\]\)]/', '', $data); 
    

    下面是一个正则表达式,它将匹配任何一个分隔符:

    preg_replace('/\\[\[\(].*?\\[\]\)]/', '', $data); 
    
  • 你必须使用

    
    preg\u replace(“/\[.*]/”,“,$str1”);
    

    preg\u replace
    函数的模式参数是一个普通的PHP字符串,因此
    \\
    将被
    \
    替换,以生成以下正则表达式模式:

    
    /\\\[.*\\\]/
    

    前两个反斜杠
    \\
    与主题中的反斜杠匹配,其余的
    \[
    \]
    分别与
    [
    ]
    匹配

  • 是的,您可以使用所谓的负前瞻零宽度断言。请查看详细信息。在您的情况下,我会尝试以下方法:

    
    preg\u replace(“/\ \[(?:(?!)))**”,“,$str1”);
    

    遇到
    ?!\\\\\]
    时,
    ?!\\\\\\\]
    会立即停止匹配。
    ?:
    会阻止捕获外圆括号对

  • 你必须使用

    
    preg\u replace(“/\[.*]/”,“,$str1”);
    

    preg\u replace
    函数的模式参数是一个普通的PHP字符串,因此
    \\
    将被
    \
    替换,以生成以下正则表达式模式:

    
    /\\\[.*\\\]/
    

    前两个反斜杠
    \\
    与主题中的反斜杠匹配,其余的
    \[
    \]
    分别与
    [
    ]
    匹配

  • 是的,您可以使用所谓的负前瞻零宽度断言。请查看详细信息。在您的情况下,我会尝试以下方法:

    
    preg\u replace(“/\ \[(?:(?!)))**”,“,$str1”);
    

    遇到
    ?!\\\\\]
    时,
    ?!\\\\\\\]
    会立即停止匹配。
    ?:
    会阻止捕获外圆括号对


  • 是否要删除介于
    \[\]
    之间的所有内容?@HamZaDzCyberDeV yes,以及
    \[\]
    之间的所有内容。是否要删除介于
    \[\]
    之间的所有内容?@HamZaDzCyberDeV yes,以及
    \[\]
    也是。谢谢你的建议,但我尝试过的一堆表达式都不起作用……是的,对不起,我使用的是在线php正则表达式编辑器……似乎坏了:(谢谢你的建议,但我尝试过的一堆表达式都不起作用……是的,对不起,我使用的是在线php正则表达式编辑器……似乎坏了:)我很乐意帮忙。