我编写了一个c程序,可以从Windows下的命令行中检索参数。其中一个论点是正则表达式。所以我需要检索特殊字符,例如“(,。”等等,但cmd.exe会将“(”视为特殊字符。
我怎么能输入这些特殊字符?
感谢。
答案 0 :(得分:9)
您通常可以使用^
为任何字符添加前缀,以关闭其特殊性质。例如:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Pax>echo No ^<redirection^> here and can also do ^
More? multi-line, ^(parentheses^) and ^^ itself
No <redirection> here and can also do multi-line, (parentheses) and ^ itself
C:\Documents and Settings\Pax>
在单词do
之后,这是一个插入符号后面的输入符号。
答案 1 :(得分:8)
您可以将参数放在引号中:
myprogram.exe "(this is some text, with special characters.)"
虽然我不认为括号会导致问题除非您在批处理文件中使用块来表示条件语句或循环。由shell专门处理并需要引用或转义的常用字符数组是:
& | > < ^
如果你在正则表达式中使用那些,那么你需要引号,或者转义那些字符:
myprogram "(.*)|[a-f]+"
myprogram (.*)^|[a-f]+
(^
是转义字符,它导致后续字符不被shell解释,而是按字面意思使用)