Регулярное выражение WikiTable - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть тег wikiTable, и я пытаюсь использовать регулярное выражение Java для извлечения этой таблицы, чтобы удалить ее из другого текста.Пример таблицы следующий:

{| class="wikitable" border="1"
! بيانات الطرق
! عدد أعمدة الأنارة 
! المسفلتة والمنُارة والمشجرة
! المسفلتة فقط 
|-
| طرق قائمة
| 21.347
| 1.653.000 كم
| 33.889.200 كم
|-
| طرق قيد التنفيذ
| 11.614
| 20.000 كم
| 1.265.790 كم
|-
| طرق مقترح تنفيذها
| 498.631
| 106.000 كم
| 161.000 كم
|}

Я использовал:

replaceAll("\\{\\| class=\"wikitable.*?\\|\\}", "");

, но он не работает: (

какие-либо подсказки?

Ответы [ 2 ]

2 голосов
/ 15 ноября 2012

Может быть, потому что . не соответствует символу новой строки?

Если таблицы, которые вы извлекаете, не содержат шаблонов (поэтому нет символа} до окончания таблицы), вы можете попробовать

"\\{\\| class=\"wikitable[^\\}]+\\|\\}"
0 голосов
/ 23 ноября 2011

регулярное выражение выглядит хорошо, вы, вероятно, забыли поставить правильные флаги

Javadocs

Если вы хотите использовать заменить, вы должны добавить флаги, добавив их к вашемурегулярное выражение

replaceAll("(?s)\\{\\| class=\"wikitable.*?\\|\\}", "");

Это должно добавить флаг dotall к вашему регулярному выражению

...