2013-08-06 6 views
2

Я видел некоторые вопросы об инвертировании регулярных выражений, но я не мог применить решения OpenEfine и заставить его работать.OpenRefine: Инвертирование регулярного выражения

Например, предположим, что у меня есть поле Почтовый индекс, где большинство записей имеют вид

^\d{5}-\d{4}$ 

Я хочу, чтобы отфильтровать все эти записи, чтобы увидеть, что осталось с использованием регулярных выражений Grel. Как создать регулярное выражение, которое находит все строки без указанной выше формы в Openrefine?

+0

Поддерживает ли ваш двигатель негативный взгляд вперед? –

+1

OpenRefine включает Java.Util.regex, поэтому я бы предположил, что он поддерживает отрицательные образы. –

ответ

2

Вы можете использовать отрицательные образы как способ сопоставить что-то без определенной подстроки. В вашем случае это будет соответствовать всем без 5 цифр, за которыми следует тире, а затем 4 цифры.

^((?!\d{5}-\d{4}).)*$

Другой работа вокруг, чтобы соответствовать все без определенных подстрок, чтобы просто заменить, что подстроки "", а затем захватить все записи.

+0

Это отлично работает! Благодарю. Есть ли способ изменить его, чтобы возвращать только ненулевые записи (которые также не соответствуют шаблону)? – Rob

+0

Рад, что он работает, вы можете заменить '*' на '+', а также игнорировать все ненулевые записи. –

+0

Отлично. Благодаря! – Rob

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

  • Нет связанных вопросов^_^