大约有2000行这样的代码,所以手动操作可能比找出一种编程的方法需要更多的工作。它只需要工作一次,所以我不关心性能或任何事情。
<tr><td>Canada (CA)</td><td>Alberta (AB)</td></tr>
<tr><td>Canada (CA)</td><td>British Columbia (BC)</td></tr>
<tr><td>Canada (CA)</td><td>Manitoba (MB)</td></tr>
基本上它的格式是这样的,我需要将它分为4个部分,国家名称,国家缩写,部门名称和部门缩写。
为了保持我的完全缺乏效率,我计划在分解HTML标记后对它们执行一次string.Replace,然后找到左方括号的索引,并抓取剩余的空格分隔字符串。然后我意识到我没有办法跟踪哪个是国家,哪个是分区,以及如何按国家进行分组。
那么有没有更好的方法来做到这一点呢?或者更好的是,用国家和省/州填充数据库的一种更简单的方法?我环顾四周,我找到的唯一现成的数据库没有提供国家或省/州的全名,也没有使用IP而不是地理名称。
发布于 2009-03-16 12:03:44
=“插入到国家(代码,名称) VALUES=('”& A1 & "','“& B1 & "');"
然后您就有了一列可以剪切、粘贴和执行的INSERT语句。
编辑
在粘贴到电子表格中时,请确保包含<table>
标签。
<table><tr><th>country</th><th>name></th></tr>
<tr><td>Canada (CA)</td><td>Alberta (AB)</td></tr>
<tr><td>Canada (CA)</td><td>British Columbia (BC)</td></tr>
<tr><td>Canada (CA)</td><td>Manitoba (MB)</td></tr>
</table>
处理CSV文件几乎不需要解析。它有引号和逗号。比XML/HTML更容易使用。
发布于 2009-03-16 12:16:38
/<tr><td>([^\s]+)\s\(([^\)])\)<\/td><td>([^\s]+)\s\(([^\)])\)<\/td><\/tr>/
那么您应该有4个捕获,其中包含来自任何PCRE引擎的4个数据片段:)
或者,像http://jacksleight.com/assets/blog/really-shiny/scripts/table-extractor.txt这样的东西提供了更多的完整性。
发布于 2009-03-16 12:06:15
听起来像是Regex很容易解决的问题。
https://stackoverflow.com/questions/651947
复制相似问题