Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 - Fatal编程技术网

Php 与以下模式匹配的正则表达式

Php 与以下模式匹配的正则表达式,php,regex,Php,Regex,我不擅长正则表达式,但今天我面临一个不可避免的情况,因此我需要一个与以下情况匹配的正则表达式: |hhas.jpg||sd22-9393das.png||8jjas.png||IMG00338-20110109.jpg| 我尝试了这个正则表达式:/(?使用这个 preg_match_all('/\|(.*?)\||/', $str, $matches); print_r(array_filter($matches[1])); 输出: Array ( [0] => hhas.jp

我不擅长正则表达式,但今天我面临一个不可避免的情况,因此我需要一个与以下情况匹配的正则表达式:

|hhas.jpg||sd22-9393das.png||8jjas.png||IMG00338-20110109.jpg|
我尝试了这个正则表达式:
/(?使用这个

preg_match_all('/\|(.*?)\||/', $str, $matches);
print_r(array_filter($matches[1]));
输出:

Array
(
    [0] => hhas.jpg
    [1] => sd22-9393das.png
    [2] => 8jjas.png
    [3] => IMG00338-20110109.jpg
)


您可以使用以下正则表达式:

/\\\\\\\([^ \\]*)\\\\\\/gi

匹配字符串:

1. hhas.jpg
2. sd22-9393das.png
3. 8jjas.png
4. IMG00338-20110109.jpg
你的表情:

/(?<=\|)(\w|\d+\.\w+)(?=\|)/i
这将为您提供
|
s之间的任何内容

此外,在这样的问题上使用lookarounds是一种过分的做法。更好地使用:

/\|(.*?)\|/ig

尝试不使用正则表达式

explode('||', rtrim(ltrim ('|hhas.jpg||sd22-9393das.png||8jjas.png||IMG00338-20110109.jpg|','|'),'|'));
输出:

Array ( [0] => hhas.jpg [1] => sd22-9393das.png [2] => 8jjas.png [3] => IMG00338-20110109.jpg ) 

你得到了什么不想要的结果?当我尝试这个/(?b2.png | | b3.jpg | | b5.jpgw时,我需要的是数组([0]=>hhas.jpg[1]=>sd22-939393das.png[2]=>8jjas.png[3]=>IMG00338-20110109.jpg请查看这两个答案。@user3041943我将使用
preg\u split()进行拆分
使用
~\\\+~
。之后,您只需要去除空值。这不足以处理“|a | b | c | d | e”情况,但我不知道OP是否也需要处理这些情况。
Array ( [0] => hhas.jpg [1] => sd22-9393das.png [2] => 8jjas.png [3] => IMG00338-20110109.jpg )