1

次のようなものがあります:

'This or is or some or information or stuff or attention here or testing' 

or という単語が前後にないすべての [スペース] をキャプチャしたい。

私はこれに到達しました、私は正しい軌道に乗っていると思います。

/\s(?<!(\bor\b))\s(?!(\bor\b))/

またはこれ

/(?=\s(?<!(\bor\b))(?=\s(?!(\bor\b))))/

ただし、すべてのスペースを取得しているわけではありません。これの何が問題なのですか?(2 つ目は、"and" を実行するための試行でした)

4

3 に答える 3

0

これを試して:

<?php
    $str = 'This or is or some or information or stuff or attention is   not here or testing';
    $matches = null;
    preg_match_all('/(?<!\bor\b)[\s]+(?!\bor\b)/', $str, $matches);
    var_dump($matches);
?>
于 2013-01-03T12:22:48.333 に答える
0

どうですか(?<!or)\s(?!or):

$str='This or is or some or information or stuff or attention here or testing';
echo preg_replace('/(?<!or)\s(?!or)/','+',$str); 

>>> This or is or some or information or stuff or attention+here or testing

これは負の後読みと先読みを使用します。これによりTor operator、たとえばスペースが置き換えられます。一致させたい場合はor、末尾と前にスペースを追加します。

$str='Tor operator';
echo preg_replace('/\s(?<!or)\s(?!or)\s/','+',$str); 

>>> Tor operator
于 2013-01-03T12:33:59.230 に答える