我需要从Python中的调试语句中删除前3个或4个ASCII扩展字符,但我现在还不能。这是一个例子:
ª!è[002:58:535]REGMICRO:Load: 36.6
ëª7è[001:40:971]HTTP_CLI:Http Client Mng not initialized.
我试过了:
^.*[A-Za-z]+$
和
[\x80-\xFF]+HTTP_CLI:0 - Line written in.*
但是一切都被忽略了并且给了我这个错误:
" 20160922 15:16:28.549 : FAIL : UnicodeEncodeError: 'ascii' codec can't encode character u'\x80' in position 1: ordinal not in range(128)
20160922 15:16:28.551 : INFO : ${resulters} = ('FAIL', u"UnicodeEncodeError: 'ascii' codec can't encode character u'\\x80' in position 1: ordinal not in range(128)")
20160922 15:16:28.553 : INFO : ('FAIL', u"UnicodeEncodeError: 'ascii' codec can't encode character u'\\x80' in position 1: ordinal not in range(128)")
"
任何使用RIDE和Python的人?
谢谢!
答案 0 :(得分:1)
回答如何使用RF删除方括号前的字符(如果我正确理解了问题,坦率地说 - 我不确定) - 你试过的正则表达式是不正确的;说你想在第一个方括号后得到所有东西:
${line}= Set Variable ëª7è[001:40:971]HTTP_CLI:Http Client Mng not initialized.
${regx}= Set Variable ^.*(\\[.*$)
${result}= Get Regexp Matches ${line} ${regx} 1
你正在进行的正则表达式(第2行^)是"从行的开头,跳过一切直到第一个方括号 - 从方括号到结尾的顺序是第1组& #34 ;.然后使用kw" Get Regexp Matches"你得到匹配的组1。
在python中:
import re
line = "ëª7è[001:40:971]HTTP_CLI:Http Client Mng not initialized."
regx = "^.*(\\[.*$)"
result = re.search(regx, line).group(1) # the value of result is "[001:40:971]HTTP_CLI:Http Client Mng not initialized."