Regexp — соответствует любому символу, кроме Something.AnyChar

У меня есть строка:

Ввод:

"Feature..sklsd" AND klsdjkls 9290 "Feass.lskdk SDFSD __ ksdljsklfsd" НЕ "Feuas" "Feature.lskd" ИЛИ PUT klasdkljf al9-.s.a, 9a0sd90209 .a,sdklf jalkdfj al;akd


Мне нужно сопоставить любой символ, кроме OR, NOT, AND, "Feature.any_count_of_characters"

последнее важно, это начинается с: "Feature.

Далее следует любое количество символов, а затем заканчивается: " character.

Я пытаюсь решить эту проблему, используя lookahead или lookbehind, но я могу получить ожидаемый результат, только часть символов, которые мне не нужны.

Мой ожидаемый выход:

"Feature..sklsd" И klsdjkls 9290 "Feass .lskdk SDFSD __ ksdljsklfsd" НЕ "Feuas" "Feature.lskd" ИЛИ PUT klasdkljf al9- .sa, 9a0sd90209 .a,sdklf jalkdfj ал;акд

Все что в черном.

Чтобы проверить это, я использую эти ссылки:

http://gskinner.com/RegExr/
http://regexpal.com/

Спасибо.

ИЗМЕНИТЬ

Перейдите по этой ссылке http://regexr.com?37v36.

внутри ссылки я получаю соответствие некоторому выражению. Но мне не нужно выражение, которое соответствует. мне нужно обратное, как я могу его получить?

Спасибо.


person Pablo Reyes    schedule 10.01.2014    source источник
comment
Какой язык вы используете?   -  person Bohemian♦    schedule 11.01.2014
comment
Можете ли вы сделать другой пример? Я действительно не понимаю, что вы имеете в виду под any charcter except OR, NOT, AND, "Feature.any_count_of_characters"   -  person Sam    schedule 11.01.2014
comment
... или это или это или это или это...   -  person O. R. Mapper    schedule 11.01.2014
comment
Спасибо за помощь О.Р. Картограф. Но у меня все еще та же проблема, потому что мне нужно противоположное тому, что я получаю. Позвольте мне отредактировать мой вопрос. (Я использую Java)   -  person Pablo Reyes    schedule 11.01.2014


Ответы (2)


Просто используйте

\s*(?:AND|OR|NOT|"[^"]+")\s*

но выполните операцию замены. Это оставит то, что вы хотите.

person Ron Rosenfeld    schedule 11.01.2014
comment
mjm .. хорошо .. я ищу другой способ сделать это .. но пока это работает, спасибо. дело в том, что я пытаюсь получить регулярное выражение, потому что мне это нужно в группе ... вот почему мне нужно обратное. я буду искать, каким другим способом я могу получить обратное. - person Pablo Reyes; 11.01.2014
comment
Зачем он нужен в группе? Подумайте, что вы будете делать с результатами, и может быть есть простой способ справиться с этой проблемой с результатом в переменной. - person Ron Rosenfeld; 12.01.2014
comment
мм я думаю, что это в группе, потому что мне нужно заменить весь текст, который находится в группах. Теперь я могу заменить текст, который соответствует \s*(?:И|ИЛИ|НЕ|[^]+)\s*, на какую-то пользовательскую строку. Но мне нужно сопоставить обратное, потому что мне нужно заменить другую пользовательскую строку. - person Pablo Reyes; 12.01.2014

Ваша основная проблема заключается в том, что взгляды не могут иметь произвольную длину, но вам это нужно. Есть обходные пути, но проще использовать группу захвата:

"Feature\.[^"]*" (?:OR|NOT|AND) ([^"])

И ваша цель будет в группе 1 матча.

person Bohemian♦    schedule 10.01.2014
comment
Ну, это не работает, потому что этот код соответствует Feature.... и т. д., но мне нужно сопоставить любой символ, кроме Feature.... и т. д., так что наоборот. Пожалуйста, проверьте вопрос редактирования. Спасибо за помощь. - person Pablo Reyes; 11.01.2014