0

我正在 Word 中编写一个应该匹配的通配符字符串:

{0>yadayada<}100{>yadayada<0}

其中 yadayada 可以是任何内容,但新分隔符的开头除外:{0>

这是我到目前为止所拥有的:

(\{0\>)*(\<\}100\{\>)*(\<0\})

这有效,除了第一个'*'一直匹配 tekst 直到它找到 <}100{>yadayada<0} 我需要更改它以便 * 选择除包含 '{0>' 的所有字符串

我通过改变第一个 * 来尝试这个

[!(\{0>)]*

或一切在一起:

(\{0\>)[!(\{0>)]*(\<\}100\{\>)*(\<0\})

但这显然行不通。请帮忙!

4

1 回答 1

1

尝试这个:

\{0>.+?(?=\{0>)

你只需要逃避\{

这个正则表达式的意思是:

匹配所有包含然后任何文本的字符串{0>一次或多次.+?最后告诉正则表达式引擎进行惰性搜索,因为.+如果你允许它会消耗所有字符。惰性搜索表示找到最少数量的字符,直到正则表达式的下一部分可以接管。

然后(?=\{0>)说要匹配下一个分隔符,但不要将其包含在选择中。

希望这可以帮助!

于 2013-09-05T11:52:23.237 回答