如果输入(?:\G|(?=\d+_.{16}E.*CON))(\d+)_(.*?)(EXE_CO|EXE_IN|CONTENT_ACCESS)
,那么我想制作一个打印"1995y 05m 05d"
的程序。更多示例:"950505"
-> "1949y 05m 23d"
。
"490523"
这是我的代码。我如何解决它?有解决方案吗?
答案 0 :(得分:1)
由于您基本上是在使用日期字符串,因此可以使用datetime.strptime()
来解析它们:
>>> from datetime import datetime
>>> birthday = '1995y 05m 05d'
>>> datetime.strptime(birthday, '%Yy %mm %dd').strftime('%y%m%d')
'950505'
答案 1 :(得分:0)
您现有的代码将打印整年,而您只需要两位数字。只需跳过打印的前两位数字即可。
print(p[2:])
这将从位置2开始打印p
(第三个字符,因为列表从0开始计数),没有结束范围,所以它将打印除前两个字符之外的整个字符串({{1 }})。
答案 2 :(得分:0)
使用正则表达式:
>>> import re
>>> a = re.findall("\d+","1995y 05m 05d")
>>> a[0] = a[0][2:]
>>> output = ""
>>> for item in a:
output += item
>>> int(output)
950505
>>>
答案 3 :(得分:0)
请求的正则表达式解决方案:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UITabBar.appearance().unselectedItemTintColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 1)
return true
}
使用import re
s = '1995y 05m 05d'
print(''.join(re.findall(r'\d{2}(?=[ymd])', s)))
# 950505
查找findall
,y
和m
和d
之前的所有两位数字。
答案 4 :(得分:0)
XmlDocument doc = new XmlDocument();
doc.Load("controls.xml");
XmlNodeList nodes = doc.SelectNodes("/Labels/label1/Internal/Text");
foreach (XmlNode node in nodes)
{
XmlAttribute DateAttribute = node.Attributes["Text"];
node.InnerText = TextBox1.Text;
}
doc.Save("controls.xml");
这不需要任何库