【问题标题】:Parse in Python ASCII extended Characters located at the beginning解析位于开头的 Python ASCII 扩展字符
【发布时间】:2017-01-31 02:45:39
【问题描述】:

我需要从 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 工作的人?

谢谢!

【问题讨论】:

  • 您是说问题出在 RIDE(IDE)还是机器人框架测试?这是两个不同的东西。
  • 抱歉问题出在 RIDE 上,在 Python 上运行,所以我只想用 REGEX 忽略前 3 或 4 个字符,就是这样,但我找不到如何...跨度>
  • 那么,你只有在编辑测试用例的时候才会出现这个问题,而运行测试用例的时候不会出现这个问题?
  • 一直在发生,问题出在日志跟踪中,所以我需要“清理”这个 ASCII 磨损字符的痕迹。

标签: regex python-2.7 robotframework extended-ascii


【解决方案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 组”。然后使用 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."

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2016-05-22
    • 2010-11-22
    相关资源
    最近更新 更多