我想删除国家名称的前导和尾随标签。
在我的示例中,这些标签是<li>
和<a>
。
<li><a href="http://afghanistan.makaan.com/">Afghanistan</a></li>
<li><a href="http://albanie.makaan.com/">Albanie</a></li>
<li><a href="http://algérie.makaan.com/">Algérie</a></li>
结果应该是:
Afghanistan
Albanie
Algérie
在 Microsoft Word 中,我想使用查找和替换功能使用正则表达式来实现。
如何在 MS Word 中使用正则表达式?
答案1
不要将输入文本复制到 Word,而是将其复制到 Notepad++ 或任何其他具有完整 RegEx 支持的编辑器。
一个 RegEx 字符串来选择标签之外的所有内容或>
和<
符号之间的所有内容。
(?<=>).*?(?=<)
(?<=>)
是向后看。它会查找>
符号并充当锚点。这样您就可以排除搜索字符串,这很重要,因为您不想<Afghanistan
.*?
是惰性量词并选择所有内容,直到下一个表达式(?=<)
是展望并寻找一个<
符号,但排除所搜索的符号本身。就像后面的查看一样
但你不想选择国家名称。你想删除所有标签。你需要第一个正则表达式的反义词。比如
<.*?>
- 打开 Notepad++ 搜索和替换对话框
- 选择使用正则表达式
- 找什么:
<.*?>
- 替换为:无
答案2
这在 MS Word 中很容易实现查找和替换,无需Regex,无需JavaScript等。
如果您转义括号,它会找到实际的括号字符。因此,启用通配符后,表达式\<*\\>
将找到尖括号之间的所有内容。只需将其替换为空即可。
答案3
答案4
我不会使用查找/替换来执行此操作。最简单的方法是使用 Excel 中的“文本到列”来完成此任务。为此,请选择包含文本的列,转到“数据”功能区并选择“文本到列”。您需要执行两次,一次是删除国家名称之前的所有文本(分隔符号为“>” - 确保删除多余的列以避免混淆),一次是删除名称后的文本(分隔符号为“<”)。