不再正常工作的 Regex
来源:互联网 发布:mac 查找命令路径 编辑:程序博客网 时间:2024/04/20 00:11
碰上这个问题真的是有些摸不着头脑,找不着北。先描述一下我遇到的问题吧。
测试程序是对Regex的一个小检验,非常简单:
...
string emailTemplateContent = LoadTemplate();
Regex subjectRegex = new Regex(@"/[subject/]/r/n(.*)/r/n/[//subject/]"
, RegexOptions.Compiled | RegexOptions.Singleline);
Regex bodyRegex = new Regex(@"/[body/]/r/n(.*)/r/n/[/body/]"
, RegexOptions.Compiled | RegexOptions.Singleline);
string subject = subjectRegex.Match(emailTemplateContent).Groups[1].Value;
string body = bodyRegex.Match(emailTemplateContent).Groups[1].Value;
...
这段代码在我开发环境 : windows xp + vs2005
和测试环境 : Linux+apache+mod_mono
上执行的都很好,但是在我的运营环境却无论如何不能得到 subject 和 body, 真是莫名其妙了,所有文件都是相同的源,怎么会执行结果不同呢?
在做了足够的测试跟踪后,最终把目标锁定在了 LoadTemplate() 需要装载的原始文本文件上。这个文件是在 windows xp环境下生成的,难不成是它出现问题?
登录到运营环境里,打开这个文本look look.
vi template.html
:%!xxd
咦,原来的 /r/n 怎么被转换成了 /n ? 看来是运营环境中的某个环节上出了问题,不过暂时没时间去纠缠他,修改一下代码吧:
Regex subjectRegex = new Regex(@"/[subject/]/r?/n(.*)/r?/n/[//subject/]"
, RegexOptions.Compiled | RegexOptions.Singleline);
Regex bodyRegex = new Regex(@"/[body/]/r?/n(.*)/r?/n/[/body/]"
, RegexOptions.Compiled | RegexOptions.Singleline);
既然/r不一定存在,那就模糊一下吧。修改完就可以正常了。
最有可能的原因,就是 ftp 的服务端配置上的问题了。先记下来。
- 不再正常工作的 Regex
- 让Reflector的反编译不能正常工作
- Hadoop DataNode不能正常工作的原因
- 啊!原来 CocoaPods 可以正常工作的
- stvd不正正常工作的解决方案
- 您的许可证服务未正常工作
- 爱普生打印机无法正常工作的解决方法
- myeclipse 删除不再使用的工作空间记录
- Tomcat无法正常工作
- JBuilder的光标不能正常工作的问题!
- 符合标准的正常工作的对联广告
- Zepto的Touch模块无法正常工作的一个解决方法
- 不依赖于DLL就能正常工作的全局钩子
- 不依赖于DLL就能正常工作的全局钩子
- 不依赖于DLL就能正常工作的全局钩子
- 无线网卡无法正常工作的非常规解决方法
- 移植 android, touch screen 不能正常工作的问题。
- jQuery 1.4.2 getJSON() 不能正常工作的原因
- Imagine Cup 2009 - IT Challenge invitational! Round 1 Practice Questions
- 寻找最大的K个数
- 类与类关系的UML图与代码表现
- 海纳百川
- 读取XML文件出错
- 不再正常工作的 Regex
- vc2005编译MessageBox()函数出错与UNICODE字符集
- 以色列科学家推出计算机整容软件
- 经典算法
- 点击图片关联单选/多选框
- windows程序命名规则
- 没有人能像你 -赵传
- 北京的火车站
- UML 序列图