95578


下記のような3つの文字列から期待値通りの結果を得るpythonの正規表現を教えてください。

[code]

    text1 = "こんにちは (こんばんは) (Hello (Hello))" // 期待値："Hello (Hello)"
    text2 = "こんにちは(こんばんは) (Hello(Hello))" // 期待値："Hello(Hello)"
    text3 = "こんにちは こんばんは (こんにちは こんばんは)" // 期待値："こんにちは こんばんは"
    
[/code]


CC BY-SA 4.0
2023-07-12T14:59:38.347
95576
2023-07-12T15:58:23.127
19297
question
python python3 正規表現
pythonの正規表現がうまくできない


[regex · PyPI](https://pypi.org/project/regex/) を利用する場合。

[code]

    import regex as re
    
    text1 = "こんにちは (こんばんは) (Hello (Hello))" # 期待値："Hello (Hello)"
    text2 = "こんにちは(こんばんは) (Hello(Hello))"   # 期待値："Hello(Hello)"
    text3 = "こんにちは こんばんは (こんにちは こんばんは)" # 期待値："こんにちは こんばんは"
    rx = r'(\((?:[^()]++|(?1))*\))(*SKIP)'
    
    for text in (text1, text2, text3):
        m = re.findall(rx, text)
        if m: print(m[-1][1:-1])
    
    # Hello (Hello)
    # Hello(Hello)
    # こんにちは こんばんは
    
[/code]


CC BY-SA 4.0
2023-07-12T15:58:23.127
95578
2023-07-12T15:58:23.127
47127
95576
answer