字符串提取#

group 提取

函数

std::unique_ptr<table> extract(strings_column_view const &input, regex_program const &prog, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回一个字符串列的表格,其中每列对应于给定 regex_program 对象中指定的匹配组。

第一个组的所有字符串将进入第一个输出列;第二个组进入第二个输出列,以此类推。如果第 i 行的字符串不匹配,则会在列的第 i 行添加空条目。

任何空字符串条目都会返回相应的空输出列条目。

Example:
s = ["a1", "b2", "c3"]
p = regex_program::create("([ab])(\\d)")
r = extract(s, p)
r is now [ ["a", "b", null],
           ["1", "2", null] ]

有关此 API 支持的模式的详细信息,请参阅 正则表达式特性 页面。

参数
  • input – 此操作的字符串实例

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

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

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

返回

从输入列中提取的字符串列

std::unique_ptr<column> extract_all_record(strings_column_view const &input, regex_program const &prog, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回一个字符串列表列,其中每个字符串列行对应于给定 regex_program 对象中指定的匹配组。

第一行的所有匹配组将进入第一行输出列;第二行的结果将进入第二行输出列,以此类推。

如果相应的输入字符串行不匹配或该输入行为空,将导致输出行为空。

Example:
s = ["a1 b4", "b2", "c3 a5", "b", null]
p = regex_program::create("([ab])(\\d)")
r = extract_all_record(s, p)
r is now [ ["a", "1", "b", "4"],
           ["b", "2"],
           ["a", "5"],
           null,
           null ]

有关此 API 支持的模式的详细信息,请参阅 正则表达式特性 页面。

参数
  • input – 此操作的字符串实例

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

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

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

返回

包含从输入列中提取的字符串的列表列