我有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.*?\\|\\}", "");
但它不起作用:(
任何提示?
答案 0 :(得分:2)
可能是因为.
与换行符不匹配?
如果您要提取的表在表格结尾前没有包含模板(因此没有}字符),您可以尝试
"\\{\\| class=\"wikitable[^\\}]+\\|\\}"
答案 1 :(得分:0)
正则表达式看起来很好,你可能忘了把正确的标志
如果你想使用替换,你应该通过将它们添加到正则表达式来添加标记
replaceAll("(?s)\\{\\| class=\"wikitable.*?\\|\\}", "");
这应该将dotall标志添加到你的正则表达式