我正在尝试使用Regex重新创建python的$('#start-date-time-datepicker').datetimepicker({
minDate: moment(),
sideBySide: true,
daysOfWeekDisabled: [0,6]
});
$('#end-date-time-datepicker').datetimepicker({
minDate: $('#start-date-time-datepicker').val(),
sideBySide: true,
daysOfWeekDisabled: [0,6]
});
函数。这是Automate the Boring Stuff with Python的最后一个练习题。这是我的代码:
strip()
在第16行中,如果我用任何随机字符替换(char),程序正在运行。但是,我似乎无法在那里制作自定义变量。我在那里做错了什么?
编辑:Stack说这是this question的副本。这不是因为它' 纯粹围绕正则表达式不仅仅是Python。
答案 0 :(得分:2)
我就是用这么简单的方式做到的,而且对我很有用。
import re
def my_strip(string, char=''):
regex_sub = re.sub(r'^\s+|\s+$', char, string)
return(regex_sub)
答案 1 :(得分:1)
这是简化版。
import re
def striper(x, y=""):
if y == "":
rex = re.compile(r'^(\s*)|(\s)*$')
xy = rex.sub("", x)
return xy
else:
stripContext = re.sub(r'^{}+|{}+|{}+$'.format(y, y, y), "", x)
return stripContext
print(striper('abcdfsdfdsabc', 'abc'))
答案 2 :(得分:1)
您可以使用一个可选变量进行一次编译。因为没有转义字符,所以不需要原始语句。
import re
def regexStrip(theString, stripChar='\s'):
theRegex = re.compile(f'^({stripChar})*|({stripChar})*$')
stripContext = theRegex.sub('', theString)
return stripContext
print(regexStrip('SpamEggsSpam','Spam'))
print(regexStrip('SpamSpamSpam$Eggs$SpamSpamSpam','Spam'))
print(regexStrip(' Eggs '))
print(regexStrip(' $ Eggs $ '))
答案 3 :(得分:0)
你可以使用re.sub
import re
def strip(string, chars=' \n\r\t'):
return re.sub(r'(?:^[{chars}]+)|(?:[{chars}]+$)'.format(chars=re.escape(chars)), '', string)
它使用re.escape
,因此用户可以输入具有正则表达式字符串含义的\
和[
等字符。它还使用^
和$
正则表达式标记,以便只匹配字符串前端和末尾的匹配字符组。
答案 4 :(得分:0)
我稍微改变了你的脚本,
def strip(char, string):
if char == "": # not "stripChar"
regsp = re.compile(r'^\s+|\s+$')
stripContext = regsp.sub("", context)
return stripContext
else: # some changes are here in this else statement
stripContext = re.sub(r'^{}+|{}+$'.format(char,char), "", strip("",string))
return stripContext
print(strip(stripChar, context))
输出:
Enter character to strip: e
Enter string to strip: efdsafdsaeeeeeeeeee
fdsafdsa
答案 5 :(得分:0)
要拥有lstrip和rstrip,只需将Brendan的答案修改为以下内容:
import regex as re
def lregstrip(string, chars=' \n\r\t\f\v'):
return re.sub(r'(?:^[{chars}]+)'.format(chars=re.escape(chars)), '', string)
def rregstrip(string, chars=' \n\r\t\f\v'):
return re.sub(r'(?:[{chars}]+$)'.format(chars=re.escape(chars)), '', string)
def regstrip(string, chars=' \n\r\t\f\v'):
return rregstrip(lregstrip(string,chars),chars)
candidate = " \t hogo hohohoh oho hohoho h \n \f"
print("-"+regstrip(candidate)+"-")