-1

'TERMIN' [...] と 'html' の間のすべてを除くすべてを取得したい:

「文言 文言 文言 TERMIN AL2HaIbYzmY.html 文言 文言」

私のコードは TERMIN と html の間のものしか提供しません...私はばかになっています

    preg_match('#TERMIN(.*)html#is',$url,$url);
$url = $url[count($url)-1];
4

2 に答える 2

0
preg_match('#TERMIN(.*)html#is',$url,$out);
$url = $out[1]

$out[0] には完全なパターンに一致するテキストが含まれ、$out[1] には最初にキャプチャされた括弧で囲まれたサブパターンに一致するテキストが含まれます。

または、正規表現へのすべての一致に対して

preg_match_all('#TERMIN(.*)html#is',$url,$out,PREG_PATTERN_ORDER);

$out[0][1]、$out[1][1]、$out[2][1] ...

于 2013-11-08T00:24:01.087 に答える
0

実際には、次のようなことができます。

$str = 'wordings wordings wordings TERMIN AL2HaIbYzmY.html wordings wordings';
preg_match('/(?P<part1>.*TERMIN )(.*\.)(?<part2>html.*)/i', $str, $result);
echo $result['part1'].$result['part2'];

しかし、これは非常に厳密な解決策であり、「例」は 1 つだけです。

于 2013-11-08T00:14:58.977 に答える