Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子字符串的php正则表达式以A开头,以B结尾,以删除A和B_Php_Regex - Fatal编程技术网

子字符串的php正则表达式以A开头,以B结尾,以删除A和B

子字符串的php正则表达式以A开头,以B结尾,以删除A和B,php,regex,Php,Regex,我想使用正则表达式来查找以a开头、以B结尾的子字符串,并删除a和B 例如,将xxxxAmmmm(此处有更多内容)Bvv更改为 xxmmmm(或更多)vv 这就是我提出的”/(A([^B]*)B)/I' 但是使用preg\u replace('/(A([^B]*)B)/i','$string)将为我提供xxxxv,除非我指定mmmm(和更多内容在这里)但是(和更多内容在这里)是用户生成的内容。那么,我应该怎么做才能只删除A和B呢?这就是您想要的吗 $test = 'xxxxAmmmm(andMor

我想使用正则表达式来查找以a开头、以B结尾的子字符串,并删除a和B

例如,将
xxxxAmmmm(此处有更多内容)Bvv
更改为

xxmmmm(或更多)vv

这就是我提出的
”/(A([^B]*)B)/I'


但是使用
preg\u replace('/(A([^B]*)B)/i','$string)
将为我提供
xxxxv
,除非我指定
mmmm(和更多内容在这里)
但是
(和更多内容在这里)
是用户生成的内容。那么,我应该怎么做才能只删除A和B呢?

这就是您想要的吗

$test = 'xxxxAmmmm(andMoreContentHere)Bvv';
$regex = '/A([^B]+)B/i';

echo preg_replace($regex, '$1', $test);
输出:

xxxxmmmm(andMoreContentHere)vv

这就是你要找的吗

$test = 'xxxxAmmmm(andMoreContentHere)Bvv';
$regex = '/A([^B]+)B/i';

echo preg_replace($regex, '$1', $test);
输出:

xxxxmmmm(andMoreContentHere)vv
这是你想要的吗

$str = 'xxxxAmmmm(andMoreContentHere)Bvv';
$str = preg_replace('/(A([^B]*)B)/', '\2', $str);
埃科

xxxxmmmm(andMoreContentHere)vv
这是你想要的吗

$str = 'xxxxAmmmm(andMoreContentHere)Bvv';
$str = preg_replace('/(A([^B]*)B)/', '\2', $str);
埃科

xxxxmmmm(andMoreContentHere)vv

\2反向引用第二个参数并将其用作替换值。请小心使用“i”选项。。。它将使您的正则表达式不区分大小写,如果您希望使用大写的“A”和“B”,请去掉“i”选项。如果我想找到一个不包含C但以A和B开头的子字符串,该怎么办?我知道在RegExp is(?!C)中不包含,但我不知道如何将其添加到/A([^B]*)B/I中。谢谢爱,你会做/A([^BC]*)B/。[^…]匹配“除…以外的任何字符”,然后我建议学习消极前瞻(?!…)/((((?!Cat)[^B])*)B/将xxxxammm(和MoreContenthere)Bvv转换为xxxxmmmm(和MoreContenthere)vv,但它将xxxxammm(和MoreContenthere)Bvv保留为xxxxammm(和MoreContenthere)Bvv。2反向引用第二个参数并将其用作替换值。请注意“i”选项。。。它将使您的正则表达式不区分大小写,如果您希望使用大写的“A”和“B”,请去掉“i”选项。如果我想找到一个不包含C但以A和B开头的子字符串,该怎么办?我知道在RegExp is(?!C)中不包含,但我不知道如何将其添加到/A([^B]*)B/I中。谢谢爱,你会做/A([^BC]*)B/。[^…]匹配“除…以外的任何字符”,然后我建议学习消极前瞻(?!…)/(((?!Cat)[^B])*)B/将xxxxammm(和更多内容)Bvv转换为xxxxmmmm(和更多内容)vv,但它将xxxxammm(和更多内容)Bvv保留为xxxxxxammm(和更多内容)Bvv!这就是我要找的!谢谢这就是我要找的!