字符串替换#
- 组 替换
函数
-
std::unique_ptr<column> replace(strings_column_view const &input, string_scalar const &target, string_scalar const &repl, cudf::size_type maxrepl = -1, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将每个字符串中的目标字符串替换为指定的替换字符串。
此函数在列中的每个字符串中搜索目标字符串。如果找到,则将输入字符串中的目标字符串替换为 repl 字符串。如果未找到,则输出条目只是相应输入字符串的副本。
如果为 repl 指定空字符串,则实质上会在每个字符串中删除找到的目标字符串。
空字符串条目将返回空输出字符串条目。
Example: s = ["hello", "goodbye"] r1 = replace(s,"o","OOO") r1 is now ["hellOOO","gOOOOOOdbye"] r2 = replace(s,"oo","") r2 is now ["hello","gdbye"]
- 抛出:
cudf::logic_error – 如果 target 是空字符串。
- 参数:
input – 此操作的字符串列
target – 在每个字符串中搜索的字符串
repl – 如果找到 target,则用于替换的字符串
maxrepl – 如果 target 在输入字符串中出现多次,则最大替换次数。默认为 -1,表示替换每个字符串中 target 的所有出现。
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
新的字符串列
-
std::unique_ptr<column> replace_slice(strings_column_view const &input, string_scalar const &repl = string_scalar(""), size_type start = 0, size_type stop = -1, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
此函数将列中的每个字符串中位于 [start,stop) 字符位置范围内的部分替换为提供的 repl 字符串。
空字符串条目将返回空输出字符串条目。
位置值基于 0,意味着位置 0 是每个字符串的第一个字符。
可以通过为 start 和 stop 指定相同的位置值来将字符串插入特定位置。通过为 start 和 stop 都指定 -1,可以将 repl 字符串附加到每个字符串的末尾。
Example: s = ["abcdefghij","0123456789"] r = s.replace_slice(s,2,5,"z") r is now ["abzfghij", "01z56789"]
- 抛出:
cudf::logic_error – 如果 start 大于 stop。
- 参数:
input – 此操作的字符串列。
repl – 用于替换指定位置找到的部分的字符串。默认为空字符串。
start – 添加 repl 的起始位置。默认为 0,即第一个字符位置。
stop – 用于替换的结束位置(不包含)。默认为 -1,表示每个字符串的末尾。
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
新的字符串列
-
std::unique_ptr<column> replace_multiple(strings_column_view const &input, strings_column_view const &targets, strings_column_view const &repls, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将匹配目标列表的子字符串替换为相应的替换字符串。
对于字符串列中的每个字符串,在此字符串中搜索目标列表。如果找到目标字符串,则将其替换为 repls 列中的相应条目。将替换在每个字符串中找到的所有匹配项。
此操作不使用正则表达式来匹配字符串中的目标。忽略空字符串目标。
空字符串条目将返回空输出字符串条目。
repls 参数可以可选地包含单个字符串。在这种情况下,所有匹配的目标子字符串都将替换为该单个字符串。
Example: s = ["hello", "goodbye"] tgts = ["e","o"] repls = ["EE","OO"] r1 = replace(s,tgts,repls) r1 is now ["hEEllO", "gOOOOdbyEE"] tgts = ["e","oo"] repls = ["33",""] r2 = replace(s,tgts,repls) r2 is now ["h33llo", "gdby33"]
- 抛出:
cudf::logic_error – 如果 targets 和 repls 的大小不同,除非 repls 是单个字符串。
cudf::logic_error – 如果 targets 或 repls 包含空条目。
- 参数:
input – 此操作的字符串列
targets – 在每个字符串中搜索的字符串
repls – 目标字符串对应的替换字符串
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
新的字符串列
-
std::unique_ptr<column> replace_re(strings_column_view const &input, regex_program const &prog, string_scalar const &replacement = string_scalar(""), std::optional<size_type> max_replace_count = std::nullopt, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
对于每个字符串,将匹配给定正则表达式的任何字符序列替换为提供的替换字符串。
任何空字符串条目都返回相应的空输出列条目。
有关此 API 支持的模式的详细信息,请参阅正则表达式特性页面。
- 参数:
input – 此操作的字符串实例
prog – 正则表达式程序实例
replacement – 用于替换每个字符串中匹配序列的字符串。默认为空字符串。
max_replace_count – 在每个字符串中替换匹配模式的最大次数。默认为替换所有匹配的子字符串。
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
新的字符串列
-
std::unique_ptr<column> replace_re(strings_column_view const &input, std::vector<std::string> const &patterns, strings_column_view const &replacements, regex_flags const flags = regex_flags::DEFAULT, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
对于每个字符串,将匹配给定模式的任何字符序列替换为
replacements
列中相应的字符串。任何空字符串条目都返回相应的空输出列条目。
有关此 API 支持的模式的详细信息,请参阅正则表达式特性页面。
- 参数:
input – 此操作的字符串实例
patterns – 在每个字符串中搜索的正则表达式模式
replacements – 用于替换的字符串
flags – 用于解释模式中特殊字符的正则表达式标志
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
新的字符串列
-
std::unique_ptr<column> replace_with_backrefs(strings_column_view const &input, regex_program const &prog, std::string_view replacement, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
对于每个字符串,使用反向引用替换模板替换匹配给定正则表达式的任何字符序列。
任何空字符串条目都返回相应的空输出列条目。
有关此 API 支持的模式的详细信息,请参阅正则表达式特性页面。
- 抛出:
cudf::logic_error – 如果
replacement
中的捕获索引值不在 0-99 范围内,并且索引超过模式中指定的组计数。- 参数:
input – 此操作的字符串实例
prog – 正则表达式程序实例
replacement – 用于创建输出字符串的替换模板
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
新的字符串列
-
std::unique_ptr<column> replace(strings_column_view const &input, string_scalar const &target, string_scalar const &repl, cudf::size_type maxrepl = -1, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#