2015-01-15 4 views
0

Мне нужно сопоставить строки, которые не содержат заглавной буквы «K». Символ «K» может начинать линию, может быть посередине или может быть последним символом. Я пробовал как негативный взгляд вперед, но это, похоже, терпит неудачу, когда «K» начинает линию.Строки совпадения, которые не содержат определенного символа

Я хочу, чтобы эти строки:

коронографом H-группа/Y Прямой/Non-Redundant J

Но я хочу, чтобы исключить эти строки:

' Коронография K1-полоса/K2 Прямая/не избыточная K2 '

Мне нужно, чтобы он работал как в механизме regex python, так и в ядре JavaScript regex, поэтому я не могу использовать выражения look-behind.

Когда я пробую такие вещи, как .*[^K]+, или .*[^K].*, он по-прежнему соответствует линиям с «K» в них.

Я получаю от this question, почему я не могу просто сказать [^K] и покончить с этим. Но поскольку у моего «К» может быть или не может быть персонаж, я смущен тем, как действовать. Если я скажу .[^K], или .*[^K], он по-прежнему будет соответствовать «K2 Direct». Если я скажу [^K]. или [^K].*, он будет соответствовать линиям, где «K» не запускает линию.

Возможно, я хватаюсь за соломинку здесь, но в моем списке «K» будет либо «1», либо «2». Могу ли я сделать что-то вроде [^K][^12]? Но опять же, я все еще в тупике о том, какой префикс/суффикс нужно поставить, чтобы соответствовать его переменной позиции в строке.

+0

'/ (?! K) /' это решение, которое вы ищете. Менее гибким будет '/^[^ k] + $ /' –

ответ

0

Regex: ^[^K]*$ для python и javascript.

Это регулярное выражение не напоминает строку, начинающуюся (^) и содержащие только заглавные буквы не являющихся K до конца строки $.

+0

Это должно быть регулярное выражение. – thestarsatnight

+0

С каким определением regex вы идете? Какие операторы разрешены? Существует много видов регулярных выражений. – ShellFish

+0

Я говорю в вопросе, JavaScript и python. Я могу иметь два разных синтаксиса. Мой код python принимает выражение JavaScript regex и меняет его для соответствия регулярному выражению python. Но я бы хотел, чтобы они были похожи, без сумасшедшего переключения между ними. – thestarsatnight

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