openrefine, как удалить определенные слова из конца каждой ячейки - PullRequest
0 голосов
/ 03 марта 2020

У меня есть столбец в openrefine, в котором есть ячейки с содержимым, таким как:

This dog is a great dog.
This cat is a great cat,

Я хотел бы удалить слова «собака», «кошка» с конца каждой ячейки (если можно было бы также удалить пунктуацию, это было бы здорово).

Я пытался с

\ bdog \ s * $, но я получаю ошибки, или замена не производится Я использую openrefine 3.3.

value.replace(\bdog|\bcat\s*$,'')

ошибка, которую я получаю:

Parsing error at offset 14: Missing number, string, identifier, regex, or parenthesized expression

желаемый результат:

This dog is a great
This cat is a great

также было бы здорово, если бы я мог также удалить все символы в конце, как ":,. (На самом деле я ищу регулярное выражение для кластеризации издателей (библиотечные данные), так что если бы вы могли предложить слова, которые я должен удалить из конца ячеек, я был бы признателен

1 Ответ

0 голосов
/ 05 марта 2020

Я объединил ответ Ettore с функцией split() value.split(' ')[-1], которая выбирает последнее слово части строки.

Результат: replace(value,value.split(' ')[-1],'') + value.split(' ')[-1].replace(/cat|dog/,'')

, где

  • replace(value,value.split(' ')[-1],'') выберите строку, ожидайте последнюю работу
  • value.split(' ')[-1].replace(/cat|dog/,'') замените последнее слово без значения, если оно содержит cat или dog.

Обратите внимание, что выражение работает из-за пунктуации в конце строки. Не идеальное решение, но вы можете что-то построить отсюда.

...