我试图弄明白Python是如何删除字符串两端的空格的。下面是我所指的代码,这是我尝试重新创建strip()函数的第一步:
#! python3
#myStrip.py - I will be recreating the strip function in python
import re
def stripFunc(stringToStrip,character):
if character == '':
whiteSpRegex = re.compile(r'^\s+|\s+$')
finishedString = whiteSpRegex.sub('',stringToStrip)
return finishedString
else:
otherRegex = re.compile(rf'^{character}+|{character}+$')
finishedString = otherRegex.sub('',stringToStrip)
return finishedString
testString = ' Something with spaces on the ends '
finalR = stripFunc(testString, '')
在这个场景中,函数的执行与我希望的完全一样,但我不明白为什么,特别是,如何删除末尾的空间。我认为这个正则表达式会,为了:
相反,它所做的似乎是正确地使用正则表达式捕获整个表达式,并基于我在管道正则表达式中包含的两部分在“”中进行子绑定
我错过了什么?管道不应该只抓取第一根绳子吗
正则表达式将匹配交替符号两侧的模式。正如您所说,它将匹配行开始或结束处的空格。但是
re.sub
对字符串中的所有匹配项执行替换。考虑“FO”。前面的空间已匹配并移除。但是re.sub
继续在字符串中搜索其他模式。找到末端的空间,并将其删除相关问题 更多 >
编程相关推荐