Python处理日期格式,如;“第一、第二、第三、第四”;

Python处理日期格式,如;“第一、第二、第三、第四”;,python,xml,minidom,Python,Xml,Minidom,我想处理这些字符串,如: "I will meet you at 1st." "5th... OK, 5th?" "today is 2nd\n" "Aug.3rd" 要用其他对应字符串替换“st | nd | rd | th”,实际上是xml标记,我想将这些“1st、2nd、3rd、4th”变成上标样式: 1<Font Script=”super”>rd</Font> 5<Font Script=”super”>th</Font> ... OK

我想处理这些字符串,如:

"I will meet you at 1st."
"5th... OK, 5th?"
"today is 2nd\n"
"Aug.3rd"
要用其他对应字符串替换“st | nd | rd | th”,实际上是xml标记,我想将这些“1st、2nd、3rd、4th”变成上标样式:

1<Font Script=”super”>rd</Font>
5<Font Script=”super”>th</Font> ... OK, 5<Font Script=”super”>th</Font>?
1rd
第五。。。好的,5号?

像这样

使用re模块识别日期模式并替换它们

>>> re.sub(r"([0123]?[0-9])(st|th|nd|rd)",r"\1<sup>\2</sup>","Meet you on 5th")
'Meet you on 5<sup>th</sup>'
>>re.sub(r“([0123]?[0-9])(st|th|nd|rd)”,r“\1\2”,“5号见”)
“5号见”

Regex演示

您使用的是什么XML解析器/对象模型?@MartijnPieters我使用的是Python minidom,谢谢提醒。这是否有效很大程度上取决于OP使用的工具;您不能仅仅将正则表达式的结果插入到树中,然后期望
文本成为标记(而是转义)。但是,由于OP没有告诉我们他使用的是什么XML解析器,我假设他将其作为原始字符串处理,然后它应该会起作用。@MartijnPieters我的回答提供了OP解析XML后需要做什么的指导,这是我从OPs问题中推断出来的,因为他的描述中没有明确提到XML解析部分。我只是给你们一个提示,这将导致不可避免的后续问题。@DhruvPathak谢谢你们的回答,我正在使用XML.dom.minidom进行解析。