[英]regular expression that matches the below pattern
我的正則表達式不好,但是今天我遇到了不可避免的情況,因此我需要一個匹配以下情況的正則表達式:
|hhas.jpg||sd22-9393das.png||8jjas.png||IMG00338-20110109.jpg|
我嘗試了此正則表達式:/(?<= /(?<=\\|)(\\w|\\d+\\.\\w+)(?=\\|)/i
但未獲得所需的結果...
我想通過在兩個|
之間使用PHP的preg_match
函數來匹配所有字符串|
標志,例如hhas.jpg,sd22-9393das.png等...
用這個..
preg_match_all('/\|(.*?)\||/', $str, $matches);
print_r(array_filter($matches[1]));
OUTPUT :
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
寫得不錯,但有一些小缺陷
當您說\\w
,這只是一個字符。
OR
條件
\\d+\\.\\w+
僅在滿足相同順序時匹配。 即數字列表的前面跟隨一個.
然后是字母或數字或下划線。
最好將您的正則表達式更改為:
/(?<=\|)(.*?)(?=\|)/ig
這會給你介於兩者之間的任何東西|
小號
同樣是恕我直言,使用環視解決此類問題實在是太過分了。 更好地使用:
/\|(.*?)\|/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 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.