使用字符串中的两个特定字符之间包含所有字符的快速方法是什么?
答案 0 :(得分:1)
您可以使用此正则表达式:\(.*?\)
。在这里演示:https://regexr.com/3jgmd
然后您可以使用以下代码删除部件:
import re
test_string = 'This is a string (here is a text to remove), and here is a text not to remove'
new_string = re.sub(r" \(.*?\)", "", test_string)
这个正则表达式(正则表达式)将在空格前面的括号中查找任何文本(没有换行符)
答案 1 :(得分:1)
您很可能会使用像
这样的正则表达式\s*\([^()]*\)\s*
(见a demo on regex101.com) 该表达式删除了括号和周围空格中的所有内容
<小时/> 在Python
中,这可能是:
import re
test_string = 'This is a string (here is a text to remove), and here is a text not to remove'
new_string = re.sub(r'\s*\([^()]*\)\s*', '', test_string)
print(new_string)
# This is a string, and here is a text not to remove
<小时/> 但是,出于学习目的,您还可以使用内置方法:
test_string = 'This is a string (here is a text to remove), and here is a text not to remove'
left = test_string.find('(')
right = test_string.find(')', left)
if left and right:
new_string = test_string[:left] + test_string[right+1:]
print(new_string)
# This is a string , and here is a text not to remove
后者的问题:它不考虑多次出现并且不会删除空格,但肯定会更快。
0.578398942947 # regex solution
0.121736049652 # non-regex solution
答案 2 :(得分:0)
要删除(和)中的所有文字,您可以使用\b
中的findall()
方法并使用re
删除它们:
replace()