在字符串python中搜索文本



我有以下字符串

aaabbbcccddd **16 April**xyz

日期,在本例中为4月16日,根据事件的开始时间而变化,字符串其余部分的格式可能会变短或变长(见下文)

aaabbbcccddd**eee** **16 April**xyz

我希望总是能够选择'16 April',而不管其余变量的长度。日期并不总是"4月16日",而是外部程序提供给我的任何活动的开始日期。

我想我可以

if April in 'aaabbbcccddd**eee** **16 April**xyz': 
   print 'success'

但我不知道是否有更好的方法…

我需要这样做,这样我就可以将日期重新格式化为2016-04-2013 .

应该可以了。

import datetime
import re
# Note the \x to escape x
foo = "aaabbbcccddd **16 April**\xyz"
bar = "aaabbbcccddd**eee** **1 December**\xyz"
# Could do d+ and w+ aswell, it doesn't seem to matter too much in this situation
pattern = '**(d{1,2} w{4,9})**'
# "16 April" etc
foo_format = re.search(pattern, foo).group(1)
bar_format = re.search(pattern, bar).group(1)
year = str(datetime.datetime.now().year)
# Datetime object
foo_date = datetime.datetime.strptime(year + " " + foo_format, "%Y %d %B")
bar_date = datetime.datetime.strptime(year + " " + bar_format, "%Y %d %B")
print foo_date.strftime("%Y-%m-%d")
print bar_date.strftime("%Y-%m-%d")

在为什么'x'在Python中无效中阅读更多关于x的信息?

你可以使用正则表达式:

import re
a = re.search("16 April", "sample string")
print a.group(0)

最后一条语句将返回"16 April"(如果它在字符串中)或

相关内容

  • 没有找到相关文章

最新更新