正则表达式WikiTable

时间:2011-11-22 22:59:39

标签: java regex mediawiki wikipedia

我有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 个答案:

答案 0 :(得分:2)

可能是因为.与换行符不匹配?

如果您要提取的表在表格结尾前没有包含模板(因此没有}字符),您可以尝试

"\\{\\| class=\"wikitable[^\\}]+\\|\\}"

答案 1 :(得分:0)

正则表达式看起来很好,你可能忘了把正确的标志

Javadocs

如果你想使用替换,你应该通过将它们添加到正则表达式来添加标记

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

这应该将dotall标志添加到你的正则表达式