方法

GLibMatchInfofetch_pos

自 2.14 版本起

声明 [源]

gboolean
g_match_info_fetch_pos (
  const GMatchInfo* match_info,
  gint match_num,
  gint* start_pos,
  gint* end_pos
)

描述 [源]

检索 “match_num”〈span class="quo">第〉个捕获括号字节位置。0 是匹配的全部文本,1 是第一组括号,2 是第二组,依此类推。

如果 “match_num” 是一个有效的子模式但没有任何匹配(例如,子模式 1,将 “(a)?b” 与 “b” 匹配),则将 “start_pos” 和 “end_pos” 设置为 -1,并返回 TRUE

如果使用 DFA 算法获得匹配,即使用 g_regex_match_all() 或 g_regex_match_all_full(),则检索的位置不是括号组的位置,而是匹配子串的位置。子串按长度反序匹配,因此 0 是最长匹配。

自 2.14 版本起可用

参数

match_num

类型: gint

子表达式的编号。

start_pos

类型: gint*

要存储起始位置的指针,或 NULL

该参数将由函数设置。
该参数可以为 NULL
end_pos

类型: gint*

要存储结束位置的指针,或 NULL

该参数将由函数设置。
该参数可以为 NULL

返回值

类型: gboolean

TRUE 表示检索了位置,否则为 FALSE。如果无法检索位置,则 start_posend_pos 将保持不变。