替换和删除功能
Function for Replace And Strip
我正在尝试创建一个函数来替换给定字符串中的某些值,但我收到以下错误:EOL while scanning single-quoted string.
不确定我做错了什么:
def DataClean(strToclean):
cleanedString = strToclean
cleanedString.strip()
cleanedString= cleanedString.replace("MMMM/", "").replace("/KKKK" ,"").replace("}","").replace(",","").replace("{","")
cleanedString = cleanedString.replace("/TTTT","")
if cleanedString[-1:] == "/":
cleanedString = cleanedString[:-1]
return str(cleanedString)
您可以使用 regex
模块通过更简单的解决方案来实现这一点。定义一个匹配任何 MMM/
或 /TTT
的模式,并将其替换为 ''
.
import re
pattern = r'(MMM/)?(/TTT)?'
text = 'some text MMM/ and /TTT blabla'
re.sub(pattern, '', text)
# some text and blabla
在你的函数中它看起来像
import re
def DataClean(strToclean):
clean_str = strToclean.strip()
pattern = '(MMM/)?(KKKK)?'
new_str = re.sub(pattern, '', text)
return str(new_str.rstrip('/'))
rstrip
方法将删除字符串末尾的 /
,如果有的话。 (删除 if 的需要)。
使用您在字符串中搜索的所有模式构建模式。使用 (pattern)?
将模式定义为可选。你想说多少就说多少。
它比连接字符串操作更具可读性。
注意 rstrip
方法将删除所有尾部斜杠,而不仅仅是一个。如果你只想删除最后一个字符,你需要一个 if 语句:
if new_str[-1] == '/':
new_str = new_str[:-1]
if 语句使用索引访问字符串,-1 表示最后一个字符。分配发生在切片中,直到最后一个字符。
我正在尝试创建一个函数来替换给定字符串中的某些值,但我收到以下错误:EOL while scanning single-quoted string.
不确定我做错了什么:
def DataClean(strToclean):
cleanedString = strToclean
cleanedString.strip()
cleanedString= cleanedString.replace("MMMM/", "").replace("/KKKK" ,"").replace("}","").replace(",","").replace("{","")
cleanedString = cleanedString.replace("/TTTT","")
if cleanedString[-1:] == "/":
cleanedString = cleanedString[:-1]
return str(cleanedString)
您可以使用 regex
模块通过更简单的解决方案来实现这一点。定义一个匹配任何 MMM/
或 /TTT
的模式,并将其替换为 ''
.
import re
pattern = r'(MMM/)?(/TTT)?'
text = 'some text MMM/ and /TTT blabla'
re.sub(pattern, '', text)
# some text and blabla
在你的函数中它看起来像
import re
def DataClean(strToclean):
clean_str = strToclean.strip()
pattern = '(MMM/)?(KKKK)?'
new_str = re.sub(pattern, '', text)
return str(new_str.rstrip('/'))
rstrip
方法将删除字符串末尾的 /
,如果有的话。 (删除 if 的需要)。
使用您在字符串中搜索的所有模式构建模式。使用 (pattern)?
将模式定义为可选。你想说多少就说多少。
它比连接字符串操作更具可读性。
注意 rstrip
方法将删除所有尾部斜杠,而不仅仅是一个。如果你只想删除最后一个字符,你需要一个 if 语句:
if new_str[-1] == '/':
new_str = new_str[:-1]
if 语句使用索引访问字符串,-1 表示最后一个字符。分配发生在切片中,直到最后一个字符。