正则表达式从一个关键字提取连续子字符串到另一个关键字

时间:2012-06-07 16:13:03

标签: regex

我希望正则表达式可以提取以“ERROR”开头的字符串,但不包括文本“STA”。我们的想法是只向用户显示错误消息的文本字符串,没有内部编程细节(例如代码行号和过程名称等)。

例如,应用程序返回的错误字符串的格式始终为:

...STA-20010: ERROR my app error message is here STA-06512: at ...

我想从这个字符串中提取以下内容:

ERROR my app error message is here

有没有办法使用正则表达式?如果重要,我将在actionscript3中实现这一点。

1 个答案:

答案 0 :(得分:4)

以下应该做你想做的事:

ERROR.*?(?=STA)

.*?将匹配尽可能少的字符,以便lookahead (?=STA)成功。

根据您的错误消息,可能还需要添加单词边界,例如:

ERROR.*?(?=\bSTA\b)

对于像以下字符串这样的字符串,您将STACKOVERFLOW作为错误消息的一部分而不是停止,因为它以STA开头:

...STA-20010: ERROR STACKOVERFLOW STA-06512: at ...