0

私は文字列を持っています:

<li><a href="http://www.site.tv/watch/some-text-english-subbed-dubbed-online/" title="title">title</a></li><div class="clear"></div></ul><h3><a name="dot">.dot</a></h3><ul><li><a href="http://www.site.tv/watch/searched-too-some-words-english-subbed-dubbed-online/" title="title2">title22</a></li>

そして、preg_match_allで「some-text」と「searched-too-some-words」を見つけたいと思います。しかし、これでは機能しません

preg_match_all('/http\:\/\/www\.site\.tv\/watch\/([^-]*)-english[^\/]*/s', $var, $result, PREG_PATTERN_ORDER);

$resultは何もありません

また

preg_match_all('/http\:\/\/www\.site\.tv\/watch\/(.*)-english[^\/]*/s', $var, $result, PREG_PATTERN_ORDER);

$result will be: http://www.site.tv/watch/some-text-english-subbed-dubbed-online/" title="title">title</a></li><div class="clear"></div></ul><h3><a name="dot">.dot</a></h3><ul><li><a href="http://www.site.tv/watch/searched-too-some-words-english-subbed-dubbed-online

「http://www.site.tv/watch/」の後、「-english」まで単語を見つける方法はありますか

クリスチャンに関して

4

1 に答える 1

1

URLを単語の前のテキストと一致させると仮定しますenglish

試す

preg_match_all('/http\:\/\/www\.site\.tv\/watch\/(.*?)-english[^\/]*/s', $var, $result, PREG_PATTERN_ORDER);

実際、コロンをエスケープする必要はありません:。Asadのコメントによると、区切り文字には他の何かを使用できます。

preg_match_all('|http://www\.site\.tv/watch/(.*?)-english[^/]*|s', $var, $result, PREG_PATTERN_ORDER);

それ.*?は怠惰なマッチです-.次のマッチ/トークンを見つけるまで、可能な限り少ないキャラクターにマッチさせる-あなたの場合は-english

于 2012-12-08T15:30:50.410 に答える