回答
如果您試圖拆分路徑中的目錄,則可以將正則表達式保留在工具箱中並使用explode()
。
$parts = explode('/', $path);
如果你還傳遞'3'的'$ limit','$ parts [2]'將包含第二個'/'後的所有內容。 – cmbuckley
是的,我試圖避免編寫一個附加或任何PHP通過使用現有的一個通過正則表達式,並取代無正則表達式。另外,我需要返回第二個'/',而不是將它們用作分隔符。 – curtisblackwell
由於/
沒有任何意義,我假設你想知道位置。你可以用preg_match_all
第四個參數做:
preg_match_all('~/~', $input, $matches, PREG_OFFSET_CAPTURE);
$pos = $matches[0][1][1];
索引到$matches
是相當可怕的,雖然。第一個索引對應於捕獲。 0
是整個比賽,1
,2
,3
等將是捕獲組(括號內的括號組)的結果,這裏你沒有。第二個索引對應於匹配。你想要第二場比賽,所以你想要索引1
。最後一個索引是0
表示實際匹配/捕獲的字符串,1
表示匹配/捕獲的偏移量。
你想匹配第二個斜槓,沒有別的?試試這個:
preg_match('~^/[^/]+\K/~', '/dir/entry');
\K
是MATCH POINT RESET
結構:遇到真實時,正則表達式引擎「忘記」的任何字符它迄今所看到的,並且就像當前匹配位置是比賽的開始。例如,如果你想與@
更換第二斜線,你通常會做這樣的:
preg_replace('~^(/[^/]+)/~', '[email protected]', '/dir/entry'); # /[email protected]
但是,如果你在一個情況下,你不能使用捕獲組的時候,\K
將設置你的權利:
preg_replace('~^/[^/]+\K/~', '@', '/dir/entry'); # /[email protected]
\K
只在我知道的Perl和PHP中被支持。
- 1. 如何匹配字符串的第二次出現與正則表達式?
- 2. 如何使用正則表達式匹配第二個字母?
- 3. 正則表達式 - 鑑於此字符串第二次出現
- 4. 正則表達式匹配不止一次出現的字符
- 5. 正則表達式匹配多次出現的字符串
- 6. 正則表達式:匹配字符僅出現一次
- 7. 返回正則表達式的第一次出現不匹配
- 8. 正則表達式匹配單詞的第一次出現
- 9. Perl的正則表達式匹配第一次出現
- 10. 如何僅使用正則表達式匹配第一次出現
- 11. 正則表達式匹配,直到第二次出現不同字符的字符
- 12. vba正則表達式 - 第二個字符串匹配可選
- 13. 正則表達式改變第二匹配字符串
- 14. Python正則表達式,如何匹配出現次數爲n的字符串
- 15. 正則表達式 - 匹配的字符串中第一次出現的所有行,直到下一次出現
- 16. 正則表達式匹配字符串高達最後一次出現的「/」
- 17. 如何讓正則表達式匹配每場比賽的第一次出現?
- 18. 如何用正則表達式和php匹配第二組?
- 19. 找到第一次出現的正則表達式字符集
- 20. 正則表達式匹配用#字符
- 21. 如何使用JavaScript的正則表達式來匹配第二個數字?
- 22. 多行正則表達式匹配第一次出現但不能匹配第二個
- 23. 使用通配符正則表達式匹配任何字符
- 24. 正則表達式:僅匹配非重複出現的字符
- 25. 正則表達式匹配出現
- 26. 如何匹配現有正則表達式的字符串?
- 27. 如何使用正則表達式來匹配字母字符?
- 28. 正則表達式第n次出現後檢索字符
- 29. 正則表達式正則表達式匹配字符串
- 30. 使用正則表達式匹配空白的第一次
哪種語言?你試過了什麼?你實際想要匹配什麼? – Anirudha
我正在使用PHP動力CMS的插件。 – curtisblackwell
你想達到什麼目的? –