Регулярные выражения - переверни - PullRequest
0 голосов
/ 22 декабря 2018

У меня проблемы с моим регулярным выражением.Мне удалось сделать противоположное тому, что я искал, но мне нужна помощь, чтобы перевернуть это.

Это должно было сделать следующее:

  1. удалить все слова между всеми "уши кролика "
  2. удалить все слова, начинающиеся с -перед словом (не между словами)

Регулярное выражение в некоторой степени делает это, но наоборот!Мне нужна помощь, чтобы изменить это.Я просмотрел множество учебных пособий и онлайн-руководств, но не могу найти на это никакого ответа.

([\ "]. +? [\"]) | ([-] [a-öA-Ö0-9] +)

Спасибо!

Извините, я забыл включить то, что ожидаю.

если я проверю регулярное выражение в этом тексте: -itemm первая строка поиска -item2 -item3 "важный"

Я ожидаю, что регулярное выражение будет соответствовать только следующие слова!

первая строка поиска

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Это делает работу:

$str = ' -item first search string -item2 -item3 "important"';
preg_match_all('/(?<!["-])\b\w+\b(?!")/', $str, $m);
print_r($m);

Вывод:

Array
(
    [0] => Array
        (
            [0] => first
            [1] => search
            [2] => string
        )

)

Объяснение:

(?<!["-])   # negative lookbehind, make sure we haven't quote or dash before
\b\w+\b     # 1 or more word characters, surrounded with word boundary
(?!")       # negative lookahead, make sure we haven't quote after
0 голосов
/ 22 декабря 2018

Для php:

<?php
$actual = '-item first search string -item2 -item3 "important"';

$expect = preg_replace(
    '/(\"[a-zA-Z0-9]+\")|(\B-[a-zA-Z0-9]+)/',
    '',
    $actual
);

echo $expect;

const actual = '-item first search string -item2 -item3 "important"';

const expect = actual
  .replace(/\B-[a-zA-Z0-9]+/g, '')
  .replace(/"[a-zA-Z0-9]+\"/, '');

const expect2 = actual.replace(/(\"[a-zA-Z0-9]+\")|(\B-[a-zA-Z0-9]+)/g, '');
  
console.log(expect);
console.log(expect2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...