Замена значений списка с помощью Unidata - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть список значений, которые выглядят следующим образом;

12345678/12345

На всех ~ 160 строках в списке я хочу удалить '/' и значение после него, оставляя только первый бит перед / в каждой строке.

Каков наилучший способ сделать это?

Я просматривал страницы ПОМОЩИ для Замените и измените, но я не могу определить, каким образом я буду ссылаться на первое значение перед '/'.

Заранее спасибо.

1 Ответ

1 голос
/ 25 февраля 2020

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

  1. Значение отделяется прямым слэвом sh
  2. Разделитель всегда находится в одной и той же позиции символа строки.
  3. Значения появляются в списке выбора. (что, как я предполагаю, означает, что они являются идентификаторами в файле, для этого упражнения мы назовем этот файл FOO.

Если вы знаете, что forward sla sh используется только в качестве разделителя и выполняет не существует в строке до или после того, как указанная вами позиция разделителя является последовательной, вы можете использовать FIELD, которая позволяет вам по существу разбить строку символа на массив строк и ссылаться на одно или несколько значений этого массива, которые будут возвращены.

SELECT FOO SAVING EVAL "FIELD(@ID,'/',1)"

или если значение повторяется, и вы хотите удалить дубликаты

SELECT FOO SAVING UNIQUE EVAL "FIELD(@ID,'/',1)"

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

SELECT FOO SAVING EVAL "@ID[1,8]"

или

SELECT FOO SAVING UNIQUE EVAL "@ID[1,8]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...