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))))/

不过,我并没有得到所有的空间。这有什么问题?(第二个是尝试让“和”继续下去)

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 回答
0

代码:(PHP 演示)(模式演示

$string = "You may organize to find or seek a neighbor or a pastor in a harbor or orchard.";
echo preg_replace('~(?<!\bor) (?!or\b)~', '_', $string);

输出:

You_may_organize_to_find or seek_a_neighbor or a_pastor_in_a_harbor or orchard.

有效的模式说:

匹配每个空格IF

  1. 空格前面没有完整的单词“or”(以“or”结尾的单词不算在内),并且
  2. 空格后面没有完整的单词“or”(以“or”开头的单词不算数)
于 2018-08-02T06:35:19.067 回答