处理正则表达式中的元字符

时间:2012-03-19 13:18:00

标签: c regex special-characters

在C中,当您转义除内置特殊字符之外的字符时,它的ASCII代码保持不变:\ +与+相同。我正在写一个正则表达式的引擎,并想知道如何区分\ +和+例如。

1 个答案:

答案 0 :(得分:1)

通常的解决方案是正则表达式引擎希望看到\+,所以如果正则表达式来自字符串文字,那么程序员必须编写\\+。奇怪的是,这种方法甚至在某些内置/标准正则表达式支持的语言中使用,因此可以提供特殊的正则表达式语法。

理论上,另一种方法是使用不同的转义字符 - 例如,将+用于“一个或多个”,将'+用于“实际加号” - 以免冲突用字符串文字;但由于某种原因,这种方法似乎无限不太受欢迎。