Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除";[听不见]”;从python中的文本(字符串)使用正则表达式或其他什么?_Python_Regex_String - Fatal编程技术网

如何删除";[听不见]”;从python中的文本(字符串)使用正则表达式或其他什么?

如何删除";[听不见]”;从python中的文本(字符串)使用正则表达式或其他什么?,python,regex,string,Python,Regex,String,我们有几个文本(字符串)包含描述(不是生成的语音的一部分),比如[听不见的]和[笑声]。我们想从字符串中删除这些元素。它们总是具有相同的结构,并且是用[…]编写的。 例如: text="I think I could pretty much say, Mike, most of them have become stars, if not all. Because you won. Winning is a wonderful thing. [Laughter] So I thought wha

我们有几个文本(字符串)包含描述(不是生成的语音的一部分),比如[听不见的]和[笑声]。我们想从字符串中删除这些元素。它们总是具有相同的结构,并且是用[…]编写的。 例如:

text="I think I could pretty much say, Mike, most of them have become stars, if not all. Because you won. Winning is a wonderful thing. [Laughter] So I thought what I'd do is go around the room"
这就是我们迄今为止所尝试的:

 text2=re.sub('[.*]', '', text)

如果文本有两个或多个这些元素[听不见]等等,它将删除这些元素之间的所有文本。这不应该发生,我们不知道如何避免。第一个例子有时删除。但有时情况并非如此,这也令人困惑。
我们是python初学者:)

您正在使用贪婪版本的repeat操作符(
*
)。因此,正则表达式将匹配最长的匹配字符串。还有一个非贪婪运算符
*?
,它匹配最短的字符串。贪婪是好的,但有时不贪婪更好。根据我个人的经验,我使用非贪婪运算符的频率比使用贪婪运算符的频率高

试试这个:

text2=re.sub(r'\[.\]','',text)

此外,与您的版本相比,我将前斜杠改为反斜杠以转义特殊字符,并使用原始字符串
r'string'
来防止python反斜杠和正则表达式反斜杠之间的冲突


A.M.Kuchling有一篇关于正则表达式的优秀教程。这三个变化在这里都有更详细的解释。

您使用的是贪婪版本的repeat操作符(
*
)。因此,正则表达式将匹配最长的匹配字符串。还有一个非贪婪运算符
*?
,它匹配最短的字符串。贪婪是好的,但有时不贪婪更好。根据我个人的经验,我使用非贪婪运算符的频率比使用贪婪运算符的频率高

试试这个:

text2=re.sub(r'\[.\]','',text)

此外,与您的版本相比,我将前斜杠改为反斜杠以转义特殊字符,并使用原始字符串
r'string'
来防止python反斜杠和正则表达式反斜杠之间的冲突

A.M.Kuchling有一篇关于正则表达式的优秀教程。所有这三个变化在这里都有更详细的解释

text2=re.sub('/[.*/]', '', text)