python中时间格式HH:MM AM/AM/PM/PM的正则表达式
我已经编写了正则表达式来捕获HH:MM AM/PM/AM/PM,但它无法提取精确的模式 正则表达式代码:python中时间格式HH:MM AM/AM/PM/PM的正则表达式,python,regex,Python,Regex,我已经编写了正则表达式来捕获HH:MM AM/PM/AM/PM,但它无法提取精确的模式 正则表达式代码: import re def replace_entities(example): res = '' # TIME m = re.findall("\d{2}:\d{2} (:?AM|PM|am|pm)", example) if m: for id in m: res = res +"\n{} :TIMESTR".format
import re
def replace_entities(example):
res = ''
# TIME
m = re.findall("\d{2}:\d{2} (:?AM|PM|am|pm)", example)
if m:
for id in m:
res = res +"\n{} :TIMESTR".format(id)
m = re.findall("\d{2}:\d{2}:\d{3} (:?AM|PM|am|pm)", example)
if m:
for id in m:
res = res +"\n{} :TIMESTR".format(id)
print(replace_entities('My name is sayli, Todays time is 12:10 PM Date is 21/08/2018 otal amount is www.amazon.com chandanpatil@yahoo.com euros 10,2018/13/09 saylijawale@gmail.com. https://imarticus.com Account number is Accountsortcode:abca123456'))
但我不想把下午12:10的时间作为TIMESTR来记录
已尝试正则表达式的链接。
我如何纠正它?任何建议。请帮助尝试以下建议:
说明:
\s
匹配任何空白字符(等于[\r\n\t\f\v])
\d{2}
匹配一个数字(等于[0-9]){2}量词-精确匹配2次
\:
匹配字符:字面上(区分大小写)
\d{2}
匹配一个数字(等于[0-9]){2}量词-精确匹配2次
\s?
匹配任何空白字符(等于[\r\n\t\f\v])0次或更多次
非捕获组(?:AM | PM | AM | PM)
第一个备选方案AM
与字符AM
按字面(区分大小写)匹配第二个备选方案PM
3个备选方案AM
4个备选方案PM
在行动中:
>>> import re
>>> re.findall(r'\s(\d{2}\:\d{2}\s?(?:AM|PM|am|pm))', 'Time today is 10:30 PM')
['10:30 PM']
试试这个:
说明:
\s
匹配任何空白字符(等于[\r\n\t\f\v])
\d{2}
匹配一个数字(等于[0-9]){2}量词-精确匹配2次
\:
匹配字符:字面上(区分大小写)
\d{2}
匹配一个数字(等于[0-9]){2}量词-精确匹配2次
\s?
匹配任何空白字符(等于[\r\n\t\f\v])0次或更多次
非捕获组(?:AM | PM | AM | PM)
第一个备选方案AM
与字符AM
按字面(区分大小写)匹配第二个备选方案PM
3个备选方案AM
4个备选方案PM
在行动中:
>>> import re
>>> re.findall(r'\s(\d{2}\:\d{2}\s?(?:AM|PM|am|pm))', 'Time today is 10:30 PM')
['10:30 PM']
这是你的全部代码吗?这是你的全部代码吗?很抱歉,它被错误地点击了。这个解决方案帮助了meGlad,帮助了他,快乐编程!还有一个问题,如果文本是上午10:30,那么在时间和上午/下午之间没有间隔,该怎么办?你能帮我解决这个问题吗更新了我的答案来解释这个问题,我把时间和上午/下午之间的
\s
设置为可选的。@chrisz有理由逃避吗:
?似乎没有必要。很抱歉,它被误点击了。这个解决方案帮助了meGlad,帮助了他,快乐编程!还有一个问题,如果文本是上午10:30,那么在时间和上午/下午之间没有间隔,该怎么办?你能帮我解决这个问题吗更新了我的答案来解释这个问题,我把时间和上午/下午之间的\s
设置为可选的。@chrisz有理由逃避吗:
?似乎没有必要。