在我的日期时间值中,我想使用正则表达式从时间中删除斜杠和冒号并将其替换为下划线
In my date time value I want to use regex to strip out the slash and colon from time and replace it with underscore
我正在使用 Python,Webdriver 进行自动化测试。我的场景在我们网站的管理页面上,我单击添加项目按钮并输入项目名称。
我输入的项目名称格式为LADEMO_IE_05/20/1515:11:38
最后是日期和时间。
我想做的是使用我想找到 / 和 的正则表达式:
并用下划线替换它们 _
我已经计算出正则表达式:
[0-9]{2}[/][0-9]{2}[/][0-9]{4}:[0-9]{2}[:][0-9]{2}
这会找到 2 个数字,然后是 /
,接着是 2 个数字,然后是 /
,依此类推。
我想用 _
替换 /
和 :
。
我可以在 Python 中使用 import re 执行此操作吗?我需要一些语法方面的帮助。
我的方法returns日期是:
def get_datetime_now(self):
dateTime_now = datetime.datetime.now().strftime("%x%X")
print dateTime_now #prints e.g. 05/20/1515:11:38
return dateTime_now
我在文本字段中输入项目名称的代码片段是:
project_name_textfield.send_keys('LADEMO_IE_' + self.get_datetime_now())
输出是例如
LADEMO_IE_05/20/1515:11:38
我希望输出为:
LADEMO_IE_05_20_1515_11_38
只需使用 strftime()
将日期时间格式化为 desired format:
>>> datetime.datetime.now().strftime("%m_%d_%y%H_%M_%S")
'05_20_1517_20_16'
另一个简单的选项就是使用字符串替换:
s = "your time string"
s = s.replace("/", "_").replace(":", "_")
两种方式:
i) 使用 strftime 格式:
strftime("%m_%d_%y_%H_%M_%S")
ii) 只需使用字符串的replace()方法将'/'和':'替换为'_'
基本上,您想用下划线替换每个不建议使用的字符。为此,您可以简单地使用 str.replace
方法而不是使用正则表达式。例如:
out_string = in_string.replace('/', '_').replace(':', '_')
在这个例子中,第一个替换 returns 一个字符串,所有的斜线都被替换,第二个调用替换冒号。我认为这是替换一两个字符的最简单方法。但是,如果你希望你的程序能够进化,我建议你使用re.sub
,如下:
# first we compile the regex, for speed sake
# this regex match every one of the bad characters, and it's modular: just add one, in case
bad_characters = re.compile(r'/|:')
# your code
# replacement
out_string = re.sub(bad_characters, '_', in_string)
我正在使用 Python,Webdriver 进行自动化测试。我的场景在我们网站的管理页面上,我单击添加项目按钮并输入项目名称。
我输入的项目名称格式为LADEMO_IE_05/20/1515:11:38
最后是日期和时间。
我想做的是使用我想找到 / 和 的正则表达式: 并用下划线替换它们 _
我已经计算出正则表达式:
[0-9]{2}[/][0-9]{2}[/][0-9]{4}:[0-9]{2}[:][0-9]{2}
这会找到 2 个数字,然后是 /
,接着是 2 个数字,然后是 /
,依此类推。
我想用 _
替换 /
和 :
。
我可以在 Python 中使用 import re 执行此操作吗?我需要一些语法方面的帮助。
我的方法returns日期是:
def get_datetime_now(self):
dateTime_now = datetime.datetime.now().strftime("%x%X")
print dateTime_now #prints e.g. 05/20/1515:11:38
return dateTime_now
我在文本字段中输入项目名称的代码片段是:
project_name_textfield.send_keys('LADEMO_IE_' + self.get_datetime_now())
输出是例如
LADEMO_IE_05/20/1515:11:38
我希望输出为:
LADEMO_IE_05_20_1515_11_38
只需使用 strftime()
将日期时间格式化为 desired format:
>>> datetime.datetime.now().strftime("%m_%d_%y%H_%M_%S")
'05_20_1517_20_16'
另一个简单的选项就是使用字符串替换:
s = "your time string"
s = s.replace("/", "_").replace(":", "_")
两种方式:
i) 使用 strftime 格式:
strftime("%m_%d_%y_%H_%M_%S")
ii) 只需使用字符串的replace()方法将'/'和':'替换为'_'
基本上,您想用下划线替换每个不建议使用的字符。为此,您可以简单地使用 str.replace
方法而不是使用正则表达式。例如:
out_string = in_string.replace('/', '_').replace(':', '_')
在这个例子中,第一个替换 returns 一个字符串,所有的斜线都被替换,第二个调用替换冒号。我认为这是替换一两个字符的最简单方法。但是,如果你希望你的程序能够进化,我建议你使用re.sub
,如下:
# first we compile the regex, for speed sake
# this regex match every one of the bad characters, and it's modular: just add one, in case
bad_characters = re.compile(r'/|:')
# your code
# replacement
out_string = re.sub(bad_characters, '_', in_string)