Задержка регулярных выражений в VB.Net 2.0 (для ASP.Net) - PullRequest
0 голосов
/ 11 августа 2009

Я использую более простую версию этого регулярного выражения :

<p\s*>(?:&(?:nbsp|\#0*160|x0*A0);|(?:<br\s*/?>)|[\s\u00A0]+)*</p>

В этой строке:

<p>paste in some bullets from word...</p><p>Firefox:</p><p>Bulleted list test:</p><ul><li>One </li><li>Two <ul><li>Sub item one </li><li>Sub 2 <ul><li>Subsub item1 </li><li>Subsub2</li></ul></li><li>Sub3</li></ul></li><li>Three </li><li>Four</li></ul><p>Ordered list test:</p><ol><li>one </li><li>two <ol><li>sub 1 </li><li>sub 2</li></ol></li></ol><p>                                                               i.      subsub 1</p><p>                                                             ii.      subsub 2</p><ol start="2"><ol start="3"><li>sub 3</li></ol><li>three </li><li>four</li></ol><p>test</p><p>IE6</p><p>Bulleted list test:</p><ul style="list-style-type: disc;"><li>One</li><li>Two<ul style="list-style-type: circle;"><li>Sub item one</li><li>Sub 2<ul style="list-style-type: square;"><li>Subsub item1</li><li>Subsub2</li></ul></li><li>Sub3</li></ul></li><li>Three</li><li>Four</li></ul><p> </p><p>Ordered list test:</p><ol style="list-style-type: decimal;"><li>one</li><li>two<ol style="list-style-type: lower-alpha;"><li>sub 1</li><li>sub 2</li></ol></li></ol><p>                                                               i.      subsub 1</p><p>                                                             ii.      subsub 2</p><ol style="list-style-type: decimal;" start="2"><ol style="list-style-type: lower-alpha;" start="3"><li>sub 3</li></ol><li>three</li><li>four</li></ol><br />

И этот процесс резко возрастает до 100%, казалось бы, бесконечность. Я должен делать что-то избыточно / рекурсивно с регулярным выражением, но я не уверен, что. Такое же поведение наблюдается при тестировании регулярного выражения в Expresso .

1 Ответ

0 голосов
/ 11 августа 2009

Это, кажется, это исправить:

<p\s*>(?:&(?:nbsp|\#0*160|x0*A0);|(?:<br\s*/?>)|[\s\u00A0])*</p>

Я думаю, что "+" был слишком избыточен.

...