我有這個字符串:正則表達式和貪婪 - 如何使用PHP編寫表達式?
http://localhost/whatever/index.php/something/cms-abc.html?___SID=U
我想從該字符串的CMS-ABC。我試過了:
/cms-.+/
但是這樣會給我cms-abc背後的東西。我該如何解決這個問題?
謝謝:)
我有這個字符串:正則表達式和貪婪 - 如何使用PHP編寫表達式?
http://localhost/whatever/index.php/something/cms-abc.html?___SID=U
我想從該字符串的CMS-ABC。我試過了:
/cms-.+/
但是這樣會給我cms-abc背後的東西。我該如何解決這個問題?
謝謝:)
無需正則表達式:
$url = 'http://localhost/whatever/index.php/something/cms-abc.html?___SID=U';
$parts = parse_url($url);
echo basename($parts['path']);
甚至只是
echo basename(parse_url($url, PHP_URL_PATH));
我仍然希望切斷尾隨的.html,但那很容易。謝謝! – user1856596
你是什麼意思 「的背後CMS-ABC」?你的正則表達式應該與此匹配:
/cms-abc.html?__SID=U
你的意思是你不希望問號後的東西?然後將.
替換爲[^?]
「除問號外的任何字符」。
最後,如果你在PHP中拆分URL,請看parse_url()
函數。它存在,它不需要編寫代碼,它不需要測試就可以工作,與編寫的代碼不同。
「我想從該字符串得到CMS-ABC。」因此,從/包括「cms」到(但不包括)該點的所有內容:
/cms[^\.]*/
'/ cms- [a-z] + /'? –