FindOneOf() выполняет поиск в строке, чтобы найти положение вхождения любого символа из набора указанных символов. Возвращается позиция N-го появления любого символа из поискового набора, где N ― необязательный третий параметр функции. Если третий параметр не указан, то возвращается первое вхождение. Если совпадений не найдено, возвращается значение 0.
Синтаксис:
FindOneOf(text, char_set[, count])
Возвращаемые типы данных: integer
Аргументы
Аргумент
Описание
text
Оригинальная строка.
char_set
Набор символов для поиска в text.
count
Определяет, какое вхождение символов искать. Например, значение 2 служит для поиска второго вхождения.
Пример: выражения диаграммы
Пример
Результат
FindOneOf( 'my example text string', 'et%s' )
Возвращает 4, так как буква e — четвертый символ в строке примера.
FindOneOf( 'my example text string', 'et%s', 3 )
Возвращает 12, так как поиск выполняется для любого из символов e, t, % или s и t является третьим элементом и его позиция 12 в строке примера.
FindOneOf( 'my example text string', '¤%&' )
Возвращает 0, так как в строке примера нет ни одного из символов ¤, % или &.
Пример. Основы использования функции FindOneOf
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу данных под именем Example.
Одно поле в таблице данных под именем Phrase, в котором содержатся оригинальные текстовые строки, подлежащие обработке.
Скрипт загрузки
Example:
Load *
Inline
[Phrase
Many tiny beads
For a very long time
Has the potential for growth
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
Phrase
Создайте следующие вычисляемые измерения:
=FindOneOf(Phrase, 'e', 1)
=FindOneOf(Phrase, 'y', 1)
=FindOneOf(Phrase, 'ey', 1)
=FindOneOf(Phrase, 'e', 2)
=FindOneOf(Phrase, 'y', 2)
=FindOneOf(Phrase, 'ey', 2)
Таблица результатов
Phrase
FindOneOf(Phrase, 'e', 1)
FindOneOf(Phrase, 'y', 1)
FindOneOf(Phrase, 'ey', 1)
FindOneOf(Phrase, 'e', 2)
FindOneOf(Phrase, 'y', 2)
FindOneOf(Phrase, 'ey', 2)
For a very long time
8
10
8
20
0
10
Has the potential for growth
7
0
7
12
0
12
Many tiny beads
12
4
4
0
9
9
Для каждого вычисляемого измерения на выходе выдается позиция вхождения символов из поискового набора для каждой фразы. Например, первое вхождение буквы e встречается в позициях 8, 7 и 12 для каждой фразы соответственно. Второе вхождение буквы e в каждой фразе встречается в позициях 20, 12 и 0 (не найдено). Например, первое вхождение букв 'e или y' встречается в позициях 8, 7 и 4 для каждой фразы соответственно. Обратите внимание, что во фразе For a very long time первое вхождение 'e или y' находится в позиции 8, e, а второе вхождение ― в позиции 10, y.
Следующий код показывает, как использовать эту функцию в скрипте загрузки.
Example:
Load *, FindOneOf(InputText, SearchFor, Occurrence) AS FindOneOf_Matches
Inline
InputText, SearchFor, Occurrence
my example text string, et%s,1
my example text string, et%s,3
my example text string, ¤%&,1
];
Результирующая таблица
InputText
SearchFor
Occurrence
FindOneOf_Matches
my example text string
et%s
1
4
my example text string
et%s
3
12
my example text string
¤%&
1
0
Пример. Сценарий использования функции FindOneOf
Обзор
В этом примере функция FindOneOf используется для анализа комментариев клиентов в наборе данных заказов клиентов и выявления заказов, которые могут требовать действия. В каждом заказе есть поле CustomerComment, где покупатели могут оставлять заметки или комментарии к своим заказам. Анализируя комментарии, можно выявить специфические ключевые слова или символы, такие как «!», «@», «#», которые могут указывать на срочность или особые запросы.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу данных под именем Example.
Следующие поля в таблице данных:
TicketID ― идентификационный номер билета
CustomerComment ― исходная текстовая строка
Скрипт загрузки
Example:
Load * inline [
TicketID, CustomerComment
1, I need this order ASAP!
2, Please confirm my order @12345.
3, Can you update my order?
4, I have a question about #discount.
5, Thank you!
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
I need this order ASAP! (Мне нужен этот заказ как можно скорее!)
23
High Priority (Высокий приоритет)
2
Please confirm my order @12345. (Пожалуйста, подтвердите мой заказ @12345.)
25
High Priority (Высокий приоритет)
3
Can you update my order? (Можете ли вы обновить мой заказ?)
0
Normal Priority (Нормальный приоритет)
4
I have a question about #discount. (У меня есть вопрос по поводу #скидки.)
25
High Priority (Высокий приоритет)
5
Спасибо!
10
High Priority (Высокий приоритет)
Сравните вывод функции FindOneOf с исходными значениями строк CustomerComment, загруженными в скрипт. Используя значения !,@,#, функция успешно вернула позицию, где эти символы встречаются в строке комментария. Последняя мера использует условный оператор If для выявления записей, содержащих любой из искомых символов, и классифицирует их как High Priority. Если ни один из искомых символов !,@,# не найден, например, в строке 3, то билет классифицируется как Normal Priority.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!