2014-01-10 3 views
0

У меня есть строка:Regexp - Соответствует любому символу, кроме "Something.AnyChar"

ввода:

"особенность .. sklsd" И klsdjkls 9290 "FeAsS lskdk SDFSD __ ksdljsklfsd" НЕ "Feuas" "Feature.lskd" ИЛИ PUT klasdkljf al9- .sa, 9a0sd90209 .а, sdklf jalkdfj аль; АКД


Мне нужно, чтобы соответствовать любому символу, кроме 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 аль; AKD

Все, что есть в черном цвете.

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

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

Спасибо.

EDIT

Проверить ссылку http://regexr.com?37v36

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

Спасибо.

+0

На каком языке вы используете? – Bohemian

+0

Можете ли вы сделать еще один пример?Я действительно не понимаю, что вы подразумеваете под «любым charcter, кроме OR, NOT, AND,« Feature.any_count_of_characters »' – Sam

+3

... или [this] (http://stackoverflow.com/questions/6956010/c-sharp -регулярное выражение-исключение-строка) или [это] (http://stackoverflow.com/questions/116819/regular-expression-to-exclude-set-of-keywords) или [это] (http://stackoverflow.com/questions/18241463/regex-exclude-matched-patterns) или [это] (http://stackoverflow.com/questions/11781473/excluding-certain-patterns-in-a-regex) ... –

ответ

1

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

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

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

+0

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

+0

Зачем вам это нужно в группе? Подумайте, что вы будете делать с результатами, и может быть простой способ справиться с этой проблемой с результатом в переменной –

+0

мм. Я думаю, что это в группе, потому что мне нужно заменить весь текст, который находится в группах. Теперь я могу заменить текст, который соответствует \ s * (?: AND | OR | NOT | "[^"] + ") \ s * с некоторой пользовательской строкой. Но мне нужно сопоставить обратное, потому что мне тоже нужно заменить другой пользовательская цепочка. –

0

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

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

И ваша цель будет находиться в 1-й группе матча.

+0

Ну, thats не работает, потому что этот код соответствует «Feature ....» и т. Д. ... но мне нужно сопоставить любой символ, кроме «Feature ...» и т. Д., Так что обратное. Проверьте вопрос редактирования. Спасибо за помощь. –

Смежные вопросы