在C中,当您转义除内置特殊字符之外的字符时,它的ASCII代码保持不变:\ +与+相同。我正在写一个正则表达式的引擎,并想知道如何区分\ +和+例如。
答案 0 :(得分:1)
通常的解决方案是正则表达式引擎希望看到\+
,所以如果正则表达式来自字符串文字,那么程序员必须编写\\+
。奇怪的是,这种方法甚至在某些内置/标准正则表达式支持的语言中使用,因此可以提供特殊的正则表达式语法。
理论上,另一种方法是使用不同的转义字符 - 例如,将+
用于“一个或多个”,将'+
用于“实际加号” - 以免冲突用字符串文字;但由于某种原因,这种方法似乎无限不太受欢迎。