-1
st = """
    What kind of speCialist would we see for this?He also seems to have reactions to the red dye cochineal/carmine cialist,I like Cialist much
 """

ここでは、Cialist文字列(完全一致)のみを置き換える必要があります。また、最後にコンマが含まれている場合があります

「spe*cialist*」という言葉は投げてはいけません

この正規表現を試してみました。

 bold_string = "<b>"+"Cialist"+"</b>"
 insensitive_string = re.compile(re.escape("cialist"), re.IGNORECASE)
 comment = insensitive_string.sub(bold_string,st)

しかし、それは弦のスペシャリストも投げます。

これを修正するように提案してもらえますか?

Pythonで16進文字を置き換える際のもう1つの問題。

 date_str = "28-06-2010\xc3\x82\xc2\xa008:48 PM"
 date_str = date_str.replace("\n","").replace("\t","").replace("\r","").replace("\xc3\x82\xc2\xa"," ")
 date_obj = datetime.strptime(date_str,"%d-%m-%Y %H:%M %p")
 Error: time data '08-09-2005\xc3\x82\xc2\xa010:18 PM' does not match format '%d-%m-%Y %H:%M %p'

ここでは、16進文字を日時パターンと一致させるためのスペースに置き換えることができません。

この問題を解決していただけませんか。

4

3 に答える 3

0

単語の境界に一致させるには\bを使用します。それからそれは単純になります:)

import re

st = """
    What kind of speCialist would we see for this?He also seems to have reactions to the red dye cochineal/carmine cialist,I like Cialist much
 """

print re.sub(r'\bCialist\b', "<b>Cialist</b>", st)

2番目の質問では、最後の置換文字列の最後に0がありません。0を追加するだけで機能します:)

date_str = "28-06-2010\xc3\x82\xc2\xa008:48 PM"
print date_str
date_str = date_str.replace("\n","").replace("\t","").replace("\r","").replace("\xc3\x82\xc2\xa0"," ")
print repr(date_str)
于 2012-06-29T19:09:25.327 に答える
0

1つに2つの質問?

正規表現を単語の境界に置き換えて、re.sub(r'\bcialist\b', '', your_string, re.I)

于 2012-06-29T19:10:22.487 に答える
0

2番目のQについて:

>>> re.sub(r'\\[a-zA-z0-9]{2}', lambda L: str(int(L.group()[2:], 16)), text)
'28-06-20101238212210008:48 PM'

それはあなたのstrptimeのためにそれを再編成するか、strptimeにそれを解釈させるかのどちらかです。

于 2012-06-29T19:26:21.223 に答える