【发布时间】:2011-05-28 00:06:51
【问题描述】:
我目前正在研究一个高度利用正则表达式的项目。输入字符串已经大写,因此设置了正则表达式 IgnoreCase 标志。内部的 MS RegEx 引擎随后将所有大小写更改回较低的值,这是不必要的打击。将 reg 表达式模式更改为大写并删除标志有助于提高性能。
有谁知道算法库可以大写 Reg ex 模式而不影响组名或转义字符?
【问题讨论】:
-
ToUpper()在您的模式字符串上。这不应该影响特殊字符。 -
恐怕是可以的,比如\w或者\s在ToUpper()-ed的时候意义就大不一样了
-
肯定会影响特殊字符:
\s和\S不一样。您可能必须自己解析正则表达式。可惜这么多语言并没有在结构上暴露正则表达式,而只是序列化成字符串或者不透明的对象。 -
++ 到上述 cmets 并且:您是否对您的 RegEx 应该匹配/不匹配的内容进行了测试?否则,无论您采用何种 RegEx 转换方法,都存在引入回归的风险。
-
我已经有了一组基于大量输入(1000 秒)的基准测试结果。我可以将这些与通过更改正则表达式获得的任何结果进行比较