我想學習正則表達式,並有一個字符串一些正則表達式,我要開始爲(不包括)PHP沒有結束
.com/
,並最終成爲(不包括)
">[tomato
我可以使基本的正則表達式正常,但它保持包括番茄部分,而不是在它之前結束。所以,如果我有
'sdf98uj3.com/sdjkh.sdf./sdf.sdf">[tomatoiosdf8uj3'
,那麼我想返回:
sdjkh.sdf./sdf.sdf
我在PHP中使用的preg_match。有任何想法嗎?
我想學習正則表達式,並有一個字符串一些正則表達式,我要開始爲(不包括)PHP沒有結束
.com/
,並最終成爲(不包括)
">[tomato
我可以使基本的正則表達式正常,但它保持包括番茄部分,而不是在它之前結束。所以,如果我有
'sdf98uj3.com/sdjkh.sdf./sdf.sdf">[tomatoiosdf8uj3'
,那麼我想返回:
sdjkh.sdf./sdf.sdf
我在PHP中使用的preg_match。有任何想法嗎?
preg_match('~\.com/(.*?)">\[tomato~', $str, $match);
$match[1]
包含您的字符串。 (.*?)
是一個capture group,它捕獲.com/
和">[tomato
之間的每個字符。
http://www.regular-expressions.info/是學習正則表達式的好開始。
也沒有正則表達式來解決,使用strpos
(docs),strrpos
(docs)和substr
(docs):,正則表達式是不是最好的方式去
$start = strpos($str, '.com/');
$end = strrpos($str, '">[tomato'); // or strpos to find the first occurance
$sub = substr($str, $start, $end-$start);
我知道他們會是一個更好的方式!謝謝! – David19801 2011-01-31 17:28:10
preg_match('/(.*?)\.com/(.*?)">\[tomato(.*)/', $text, $matches);
echo $matches[2];
如果你實際上是在解析URL或HTML (儘管它們對很多事情都非常漂亮,值得學習)。對於URL,請查看parse_url或pathinfo下的PHP手冊。對於HTML,看看SimpleXML。 – dnagirl 2011-01-31 17:30:47