简体   繁体   English

用于删除带括号的文本的正则表达式

[英]Regular expression for removing text with parenthesis

Take this text for example泣(な)き出(だ)した, I want to remove the furigana programmatically (ie.泣き出した).以这个文本为例,泣(な)き出(だ)した,我想以编程方式删除假名(即。泣き出した)。 I tried我试过了

re.sub(r"\([^()]*\)", "", '泣(な)き出(だ)した')

but it returns泣したinstead.但它反而返回了泣した What is the better regular expression?什么是更好的正则表达式?

The parentheses in your character class are half-width (半角) instead of full-width (全角) parentheses.字符 class 中的括号是半角(半角)而不是全角(全角)括号。

Replacing them will fix your problem:更换它们将解决您的问题:

import re

re.sub(r"\([^()]*\)", "", '泣(な)き出(だ)した')

# '泣き出した'

You should try re.sub(r"\(.*?\)", "", '泣(な)き出(だ)した') , which uses the non-greedy quantifier *?您应该尝试使用非贪婪re.sub(r"\(.*?\)", "", '泣(な)き出(だ)した') *? . .

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM