我们遇到以下正则表达式的问题:
(.*?)\|\*\|([0-9]+)\*\|\*(.*?)
它应该匹配以下内容:|*25 *|
我们正在使用 .Net Framework 4 RegEx 类,代码如下:
string expression = "(.*?)" +
Regex.Escape(Constants.FIELD_START_DELIMITER_BACK_END) +
"([0-9]+)" +
Regex.Escape(Constants.FIELD_END_DELIMITER_BACK_END) +
"(.*?)";
Regex r = new Regex(expression);
r.Matches(contentText)
40.000 个字符的文本花费的时间太长(例如 60 秒)。
但是对于 180.000 的文本,它的速度是可以接受的(3 秒或更短)
文本之间的唯一区别在于第一个文本(速度较慢的文本)全部包含在一行中,没有换行符。这可能是一个问题吗?那是影响性能吗?
谢谢