1

在我的程序中,我允许管理员定义特定的字符串格式应该是模板文档的一部分。这可能包含一个正则表达式,或者它可能只是一个文字字符串。

如果它是文字字符串,那么我想为文档中的所有实例自动复制字符串,但如果它是 (PERL) 正则表达式,我想提示用户输入正确的字符串。这部分由可能不了解正则表达式的较低级别用户(非管理员)执行,因此我不想将其作为默认填写。

目前我正在通过字符串ala循环中的简单调用来搜索正则表达式字符:

if ( strchr ( "\\^.$({[+-?*|", cInputP [ iLoop ] ) != NULL ) {
    bRet = TRUE;
    break; }

然而,这似乎不优雅并且容易出现语法错误。PCRE 中是否存在可以执行此操作的现有功能?pcre_study() 函数似乎没有这样做,我也看不到如何从 pcre_compile() 获取此信息。

理想情况下,我还希望能够将字符串分解为文字子字符串和用户输入的子字符串的组件,以便替换字符串可以预先填充已知所需的字符,即使它确实包含正则表达式。PCRE 库是否可以按原样进行,还是我需要用自己的代码对其进行扩展?

4

1 回答 1

2

您的要求有点令人困惑,因为它暗示了某种错误的划分;事实上,所有字符串都是正则表达式,它们自己匹配(当然,可能包含无效正则表达式的字符串除外)。

所以尝试检测一个字符串是“文字字符串还是正则表达式”有点奇怪。

让用户明确地告诉程序文字字符串是否足够,或者是否需要使用正则表达式可能会更好。

于 2013-08-15T08:07:30.017 回答