1

我想翻译当前的正则表达式:

(.*?)<w:t([^>]*)>

不使用*?(在 ActionScript3 中)

意思是我想在第一次出现之前得到一切<w:t

我可以使用([^<]*),但问题是我想匹配例如<w:r在第一个括号内。

是否可以使用正则表达式来完成,或者我必须手动完成?

4

1 回答 1

2

我很惊讶 AS3 不支持非贪婪!但是我至少知道 AS3 完全支持 lookhead 断言,这意味着您可以这样做:

((?:.(?!<w:t))*)

这样做是一个一个地捕获每个字符,只要该字符后面不跟一个<w:t.

小心不要翻转!<as ,<!否则您会无意中断言背后的条件!

编辑

嗯,AS3应该支持非贪婪。我怀疑你的问题在其他地方。例如,正则表达式的其余部分可能有问题,导致它匹配“第一个”实例,导致它“继续查找”直到匹配的后续实例。

于 2013-05-22T14:21:08.903 回答