如何在python中从str中删除字符?
我有以下str,我想删除字符 例如: 来自str1=A.B.1912/2013H-002322 至1912/2013 自srt2=I.M.1591/2017I-29917529 至2017年1月1591日 来自str3=I.M.C.15/2017I-11217529 至2017年5月15日 我试着这样做,但我需要把其余的从右边移走 newStr=str1.带“A.B.” “1912/2013H-002322” 目前,我正在用切片表示法来做这件事 str1=A.B.1912/2013H-002322 str1=str1[4:13] “1912/2013” 但并非所有的长度都相同 有什么想法或建议吗?改用正则表达式:如何在python中从str中删除字符?,python,python-3.x,Python,Python 3.x,我有以下str,我想删除字符 例如: 来自str1=A.B.1912/2013H-002322 至1912/2013 自srt2=I.M.1591/2017I-29917529 至2017年1月1591日 来自str3=I.M.C.15/2017I-11217529 至2017年5月15日 我试着这样做,但我需要把其余的从右边移走 newStr=str1.带“A.B.” “1912/2013H-002322” 目前,我正在用切片表示法来做这件事 str1=A.B.1912/2013H-00232
import re
regex = re.compile(r'\d+/\d+')
print(regex.search(str1).group())
print(regex.search(str2).group())
print(regex.search(str3).group())
输出:
1912/2013
1591/2017
15/2017
请改用正则表达式:
import re
regex = re.compile(r'\d+/\d+')
print(regex.search(str1).group())
print(regex.search(str2).group())
print(regex.search(str3).group())
输出:
1912/2013
1591/2017
15/2017
我们可以尝试将re.sub与捕获组一起使用:
str1 = "A.B.1912/2013(H-0)02322"
output = re.sub(r'.*\b(\d+/\d+)\b.*', '\\1', str1)
print(output)
1912/2013
我们可以尝试将re.sub与捕获组一起使用:
str1 = "A.B.1912/2013(H-0)02322"
output = re.sub(r'.*\b(\d+/\d+)\b.*', '\\1', str1)
print(output)
1912/2013
你必须用一种方法来解决这个问题
import re
pattern = r'\d+/\d+'
str1 = "A.B.1912/2013(H-0)02322"
srt2 = "I.M.1591/2017(I-299)17529"
str3 = "I.M.C.15/2017(I-112)17529"
print(*re.findall(pattern, str1))
print(*re.findall(pattern, str2))
print(*re.findall(pattern, str3))
输出:
1912/2013
1591/2017
15/2017
你必须用一种方法来解决这个问题
import re
pattern = r'\d+/\d+'
str1 = "A.B.1912/2013(H-0)02322"
srt2 = "I.M.1591/2017(I-299)17529"
str3 = "I.M.C.15/2017(I-112)17529"
print(*re.findall(pattern, str1))
print(*re.findall(pattern, str2))
print(*re.findall(pattern, str3))
输出:
1912/2013
1591/2017
15/2017
通过对字符串格式的一些适度假设,下面是一个不使用正则表达式的解决方案: 首先拆分字符上的字符串,将子字符串保留在左侧:
left = str1.split( '(' )[0] # "A.B.1912/2013"
然后,在最后一页上拆分结果。i、 e.仅从右侧拆分一次,保留第二个组件:
cut = left.rsplit('.', 1)[1] # "1912/2013"
或者将这两个步骤组合成一个函数:
def extract(s):
return s.split('(')[0].rsplit('.', 1)[1]
通过对字符串格式的一些适度假设,下面是一个不使用正则表达式的解决方案: 首先拆分字符上的字符串,将子字符串保留在左侧:
left = str1.split( '(' )[0] # "A.B.1912/2013"
然后,在最后一页上拆分结果。i、 e.仅从右侧拆分一次,保留第二个组件:
cut = left.rsplit('.', 1)[1] # "1912/2013"
或者将这两个步骤组合成一个函数:
def extract(s):
return s.split('(')[0].rsplit('.', 1)[1]
str1.split[0]作为启动器。str1.split[0]作为启动器。