我希望正则表达式可以提取以“ERROR”开头的字符串,但不包括文本“STA”。我们的想法是只向用户显示错误消息的文本字符串,没有内部编程细节(例如代码行号和过程名称等)。
例如,应用程序返回的错误字符串的格式始终为:
...STA-20010: ERROR my app error message is here STA-06512: at ...
我想从这个字符串中提取以下内容:
ERROR my app error message is here
有没有办法使用正则表达式?如果重要,我将在actionscript3中实现这一点。
答案 0 :(得分:4)
以下应该做你想做的事:
ERROR.*?(?=STA)
.*?
将匹配尽可能少的字符,以便lookahead (?=STA)
成功。
根据您的错误消息,可能还需要添加单词边界,例如:
ERROR.*?(?=\bSTA\b)
对于像以下字符串这样的字符串,您将STACKOVERFLOW
作为错误消息的一部分而不是停止,因为它以STA
开头:
...STA-20010: ERROR STACKOVERFLOW STA-06512: at ...