gpt4 book ai didi

Python re.sub() : Replacing a char between two different categories

转载 作者:行者123 更新时间:2023-12-01 05:09:32 24 4
gpt4 key购买 nike

我想将嵌套的括号结构转换为 JSON 格式的方括号结构。

input_string = '( np ( ap ( !b ( 显微 ) ) !np ( !n ( 解剖学 ) )'    
output_string = '[ "np", [ "ap", [ "!b" , "显微" ] ] [ "!np", [ "!n" , "解剖学" ] ] ]'

所以,我需要做出三项改变。

  1. 将模式 english_letter ( english letter 替换为 "english_letter", [ "english_letter"
    例如,ap (!b -> "ap", [ "!b"

  2. 将模式 english_letter ( chinese letter 替换为 "english_letter", "chinese_letter"
    例如, !b ( 显微 -> "!b", "显微"

  3. 将模式 ) english_letter 替换为 ] [ "english_letter"

我不知道如何解决这个问题,尤其是第二个。我尝试将字母分为两个列表,即中文和英文,但我不知道如何匹配 english_letter ( 中文字母

最佳答案

我假设您的 output_string 的最后一个 ] 是一个拼写错误,因为这个括号与任何左括号都不匹配。这是一个尝试,这是否满足您的要求?它至少应该让你开始。它当然可以优化。

>>> input_string = re.sub('\(', '[', input_string)
>>> input_string
'[ np [ ap [ !b [ 显微 ) ) !np [ !n [ 解剖学 ) )'
>>> input_string = re.sub('\)', ']', input_string)
>>> input_string
'[ np [ ap [ !b [ 显微 ] ] !np [ !n [ 解剖学 ] ]'
>>> input_string = re.sub(r'([a-zA-Z!]+)', r'"\1",', input_string)
>>> input_string
'[ "np", [ "ap", [ "!b", [ 显微 ] ] "!np", [ "!n", [ 解剖学 ] ]'
>>> input_string = re.sub(r'(",\ )\[\ ([^\x00-\x7F]+)',r'\1"\2"' ,input_string)
>>> input_string
'[ "np", [ "ap", [ "!b", "显微" ] ] "!np", [ "!n", "解剖学" ] ]'

关于Python re.sub() : Replacing a char between two different categories,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24468436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com