替换多行的单词(通配符)

时间:2013-07-23 08:40:47

标签: ms-word wildcard word-vba

我想在2或3行的word中创建一个搜索/替换宏,就像这样

"art. 2
2
pct. 22 din"

并将其转换为此

"art. 2<sup>2</sup>
pct. 22 din"
而不是艺术。我可以说其他的话也像lit.,pct。,alin。并且数字总是不同的

我尝试使用下一个通配符替换但它不起作用:

search: "(art. )([0-9]{1;})(^13)([0-9]{1;})(^13)"
replace: "\1\2<sup>\3</sup>^p"

如果我在搜索字段中仅键入(art。)([0-9] {1;})(^ 13)它可以工作,但如果我键入其余部分则找不到任何内容

1 个答案:

答案 0 :(得分:0)

可能有点迟到有帮助,但我认为如果我正确地编写了可怕的Word语法(我使用this guide来检查),这将有所帮助。

Search:  ([a-z]@. )([0-9]@)^13([0-9]@)^13

像以前一样进行替换。

First line match: 
    ([a-z]@. )   - Any lower case letter occurring 1 or more times, followed by a dot.
    ([0-9]@)     - Any digit occurring one or more times.
    ^13          - Paragraph mark.
Second line match:
    ([0-9]@)     - Any digit occurring one or more times.
    ^13          - Paragraph mark.

如果你发现自己做了很多这样的事情,可能值得使用支持更常见的正则表达式的东西(例如Notepad ++或类似的东西)。您可能会发现语法更具可读性,并且可以为您提供可以在许多其他环境中应用的内容。