字符串替换#

group strings_replace

函数

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 指定一个空字符串将基本上移除每个字符串中找到的目标字符串。

空字符串条目将返回空输出字符串条目。

Example:
s = ["hello", "goodbye"]
r1 = replace(s,"o","OOO")
r1 is now ["hellOOO","gOOOOOOdbye"]
r2 = replace(s,"oo","")
r2 is now ["hello","gdbye"]
Throws:

cudf::logic_error – 如果目标是一个空字符串。

Parameters:
  • input – 此操作的字符串列

  • target – 在每个字符串中搜索的字符串

  • repl – 如果找到目标,则替换字符串

  • maxrepl – 如果目标在输入字符串中出现多次,则替换的最大次数。默认值为-1,表示替换每个字符串中所有出现的目标。

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

新字符串列

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是每个字符串的第一个字符。

此函数可用于通过为开始和停止指定相同的位置值将字符串插入特定位置。通过为开始和停止指定-1,可以将替换字符串附加到每个字符串。

Example:
s = ["abcdefghij","0123456789"]
r = s.replace_slice(s,2,5,"z")
r is now ["abzfghij", "01z56789"]
Throws:

cudf::logic_error – 如果 start 大于 stop。

Parameters:
  • input – 此操作的字符串列。

  • repl – 用于替换找到的指定位置的字符串。默认为空字符串。

  • start – 添加替换的起始位置。默认值为0,即第一个字符位置。

  • stop – 用于替换的结束位置(不包括)。默认值为-1,表示每个字符串的末尾。

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

新字符串列

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"]
Throws:
  • cudf::logic_error – 如果目标和替换项的大小不同,除非替换项是单个字符串。

  • cudf::logic_error – 如果 targets 或 repls 包含空条目。

Parameters:
  • input – 此操作的字符串列

  • targets – 在每个字符串中搜索的字符串

  • repls – 目标字符串对应的替换字符串

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

新字符串列

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支持的模式详情,请参见Regex Features页面。

Parameters:
  • input – 此操作的字符串实例

  • prog – 正则表达式程序实例

  • replacement – 用于替换每个字符串中匹配序列的字符串。默认为空字符串。

  • max_replace_count – 在每个字符串中替换匹配模式的最大次数。默认情况下,替换所有匹配的子字符串。

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

新字符串列

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支持的模式详情,请参见Regex Features页面。

Parameters:
  • input – 此操作的字符串实例

  • patterns – 在每个字符串中搜索的正则表达式模式

  • replacements – 用于替换的字符串

  • flags – 用于解释模式中特殊字符的正则表达式标志

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

新字符串列

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支持的模式详情,请参见Regex Features页面。

Throws:

cudf::logic_error – 如果replacement中的捕获索引值不在0-99范围内,或者索引超过了模式中指定的组数

Parameters:
  • input – 此操作的字符串实例

  • prog – 正则表达式程序实例

  • replacement – 用于创建输出字符串的替换模板

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

新字符串列