我在以下环境中使用机器人框架。
如果匹配,我想删除“字符串中的字符”[0-9] *“pattern。
我的代码如下,但这不能用于未知参数。
*** Settings ***
Library Collections
Library json
Library String
*** Variables ***
${TARGET_STRING} {"host": "['192.168.1.2', '192.168.1.3']", "part": "['ZZZ1', 'ZZZ2']", "name": "XXXX", "kara": null, "type": "123", "id": "YYYY", "flg": false,"type2": "4567","type3": "4"}
*** Test Cases ***
My Test Case
${resp} My Keyword ${TARGET_STRING}
*** Keywords ***
My Keyword
[Arguments] ${string}
${resp} Replace String Using Regexp ${string} "[0-9][0-9][0-9]" 123
${resp} Replace String Using Regexp ${resp} "[0-9][0-9][0-9][0-9]" 4567
${resp} Replace String Using Regexp ${resp} "[0-9]" 4
Log To Console ${resp}
输出
{"host": "['192.168.1.2', '192.168.1.3']", "part": "['ZZZ1', 'ZZZ2']", "name": "XXXX", "kara": null, "type": 123, "id": "YYYY", "flg": false,"type2": 4567,"type3": 4}
(在这种情况下,我想改变
“type”:“123”到“type”:123,
“type2”:“4567”到“type2”:4567,
“type3”:“4”到“type3”:4而不是改变其他人)
我如何概括它?
答案 0 :(得分:1)
您可以使用此正则表达式:
"[^"]+"\s*:\s*)"([0-9]+)"
Python的内容可能类似于:
p = re.compile(ur'("[^"]+"\s*:\s*)"([0-9]+)"', re.IGNORECASE | re.MULTILINE)
替换字符串为:$1$2
。这将有效地重新组合这两个部分,而不包括数字周围的引号。