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 )