小编use*_*478的帖子

RegEx绩效问题

我们遇到以下正则表达式的问题:

(.*?)\|\*\|([0-9]+)\*\|\*(.*?)
Run Code Online (Sandbox Code Playgroud)

它应该匹配以下内容: |*25 *|

我们使用的是.Net Framework 4 RegEx Class,代码如下:

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)
Run Code Online (Sandbox Code Playgroud)

使用40.000个字符的文本需要太长时间(如60秒).

但是180.000的文字速度是非常可接受的(3秒或更短)

文本之间的唯一区别是第一个文本(慢速的文本)它全部包含在一行中,没有换行符.这可能是个问题吗?那影响了性能?

谢谢

.net c# regex

2
推荐指数
1
解决办法
235
查看次数

标签 统计

.net ×1

c# ×1

regex ×1