字符串替换#

替换

函数

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 – 用于分配返回列的设备内存的设备内存资源

返回:

新的字符串列