方法

GLibRegexreplace

自: 2.14

声明 [src]

gchar*
g_regex_replace (
  const GRegex* regex,
  const gchar* string,
  gssize string_len,
  gint start_position,
  const gchar* replacement,
  GRegexMatchFlags match_options,
  GError** error
)

描述 [src]

将正则表达式 regex 中的所有匹配项替换为替换文本。替换文本中的的形式 \number\g<number> 的回引用将由匹配的第number个子表达式替换,\g<name> 指的是带有给定名称的捕获子表达式。\0 指的是整个匹配,但紧跟数字的 \0 是字符的八进制表示。要包含替换文本中的字面量 \,请写作 \\\\

还有一些转义序列可以改变后续文本的大小写

  • \l: 将下一个字符转换为小写
  • \u: 将下一个字符转换为大写
  • \L: 从\n到\E转换为小写
  • \U: 从\n到\E转换为大写
  • \E: 结束大小写修改

如果不需要使用回引,请使用g_regex_replace_literal()。

replacement 字符串必须为 UTF-8 编码,即使传递了 G_REGEX_RAWg_regex_new()。如果您想使用非 UTF-8 编码的字符串,请使用 g_regex_replace_literal()

设置 start_position 与仅传递缩短的字符串并将 G_REGEX_MATCH_NOTBOL 用于以任何类型的向后断言开始的模式(如“\b”)不同。

自: 2.14

参数

string

类型: 一个由gchar组成的数组

要对其进行匹配的字符串。

数组的长度在string_len参数中指定。
数据由方法的调用者所有。
每个元素都是一个以空字符终止的UTF-8字符串。
string_len

类型: gssize

string的长度(以字节为单位),如果string以空字符终止,则为-1。

start_position

类型: gint

字符串匹配的开始索引,以字节为单位。

替换内容

类型: const gchar*

用来自替换每个匹配的文本。

数据由方法的调用者所有。
该值是NUL终止的UTF-8字符串。
匹配选项

类型: GRegexMatchFlags

匹配的选项。

错误

类型: GError **

可恢复错误的返回位置。

该参数可以是 NULL
如果返回位置不为 NULL,那么您必须将其初始化为一个 NULLGError*
如果没有错误,该方法将保留参数为 NULL 初始化。
发生错误时,该参数将被设置为一个新的 GError;调用者将保留这些数据,并负责释放它。

返回值

类型: gchar*

包含所有替换的新分配字符串。

方法调用者保留返回的数据,并负责释放它。
该值是NUL终止的UTF-8字符串。