Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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/3/templates/2.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 在字符串中查找子字符串,其中子字符串封装在特定字符中_Php_Regex_Preg Match All - Fatal编程技术网

Php 在字符串中查找子字符串,其中子字符串封装在特定字符中

Php 在字符串中查找子字符串,其中子字符串封装在特定字符中,php,regex,preg-match-all,Php,Regex,Preg Match All,我有一个字符串,格式如下: "The quick __grey__ fox jumps over the lazy __brown__ dog." 我想找到并替换双下划线之间的任何单词(有时是句子) 我目前正在PHP中使用preg_match_all: $pattern = '/__(.*)__/'; 这个很好用。。。直到它在同一行上找到两组双下划线,比如在上面的示例中,它匹配“\uuuu grey\uuuuuuuuuuuuu”和“\uuuuuuuuu brown\uuuuuuuuuuuuu

我有一个字符串,格式如下:

"The quick __grey__ fox jumps over the lazy __brown__ dog."
我想找到并替换双下划线之间的任何单词(有时是句子)

我目前正在PHP中使用preg_match_all:

$pattern = '/__(.*)__/';
这个很好用。。。直到它在同一行上找到两组双下划线,比如在上面的示例中,它匹配“\uuuu grey\uuuuuuuuuuuuu”和“\uuuuuuuuu brown\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

因此,我的问题是,是否有一种方法可以仅在一审和二审、三审和四审之间进行匹配

如果以前有人问过这个问题,我很抱歉,但我真的不知道如何用足够简洁的方式来表达这个问题,以便执行有用的搜索


提前感谢。

要在两个最接近的相同分隔符之间找到一些子字符串,请使用延迟点匹配:

$pattern = '/__(.*?)__/';

要同时匹配换行符,请使用
/s
修饰符:

$pattern = '/__(.*?)__/s';

$pattern='/______(.*)___;-使用惰性匹配。成千上万这样的问题被问到了。谢谢!我确信这不是一个独特的问题,但如果你还不知道答案,那么很难找到正确的问题:(我将发布一个社区维基答案。找不到一个好的相关帖子。太好了,谢谢!我会在计时器允许的情况下尽快接受:)没关系,我不会因此获得任何声誉分数。但请接受。是的,去告诉我。:)