我reReplace
用来从文件名中去除特殊字符。以下正则表达式在我的代码中引发异常(见下文)。但是,当我在ColdFusion 正则表达式实用程序中测试正则表达式字符串时,它工作得很好。
这是我的代码:
reReplace(tmpName,"[{}\(\)\^$&%#!@=<>:;,~`'\'\*\?\/\+\|\[\\\\]|\]|\-",'','all')
和错误:
错误消息:在第 29 行第 45 列找到无效的令牌 @。
CFML 编译器正在处理:
An expression beginning with !, on line 29, column 44.This message is usually caused by a problem in the expressions structure.
如果我转义@
符号,\@
则会收到此错误:
错误类型:模板:[N/A] 错误消息:在第 29 行第 45 列发现无效的 CFML 构造。ColdFusion 正在查看以下文本:
\\ CFML 编译器正在处理:
An expression beginning with !, on line 29, column 44.This message is usually caused by a problem in the expressions structure.
我这个正则表达式字符串的原始来源是:Regex to Strip Special Characters
我删除了.
and_
因为这些字符应该被允许。