方法
GLibMatchInfois_partial_match
自:2.14
声明 [src]
gboolean
g_match_info_is_partial_match (
const GMatchInfo* match_info
)
描述 [src]
通常,当传递给 g_regex_match*() 的字符串尽可能匹配,但长度不足以匹配整个模式时,返回 FALSE。在某些情况下,可能会很有帮助将这种情况与其他无匹配的情况区分开来。
例如,在一个需要人类输入数据的应用程序中,特定格式的字段可能需要进行数据输入。一个例子可能是一个 ddmmmyy 格式的日期,由模式 “^\d?\d(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d\d$” 定义。如果应用程序逐个查看用户的按键,并且可以检查已输入的内容是否可能有效,则它可以在出错时立即抛出错误。
GRegex 通过使用 G_REGEX_MATCH_PARTIAL_SOFT
和 G_REGEX_MATCH_PARTIAL_HARD
标志支持部分匹配的概念。当使用这些标志时,g_regex_match() 或 g_regex_match_full() 的返回代码通常是TRUE表示完全匹配,否则为FALSE。但是,当这些函数返回 FALSE 时,您可以通过调用 g_match_info_is_partial_match() 来检查是否为部分匹配。
G_REGEX_MATCH_PARTIAL_SOFT
和 G_REGEX_MATCH_PARTIAL_HARD
的区别在于,当使用 G_REGEX_MATCH_PARTIAL_SOFT
遇到部分匹配时,匹配会继续寻找可能的完全匹配,而使用 G_REGEX_MATCH_PARTIAL_HARD
则在部分匹配处停止匹配。当同时设置了 G_REGEX_MATCH_PARTIAL_SOFT
和 G_REGEX_MATCH_PARTIAL_HARD
时,后者具有优先级。
以前对部分匹配的模式有一些限制。这些限制不再适用。
有关部分匹配的更多信息,请参阅 pcrepartial(3)。
自:2.14