【发布时间】:2018-12-28 10:57:27
【问题描述】:
我正在尝试在 python 中创建新的 str 类以正确处理大写、标题等,因为它不理解文本所写的语言。对于土耳其语中的字符,我需要一些特殊情况,例如 i -> İ、İ -> i。
作为起点,我创建示例类并进行如下测试
import builtins
class gstr(str):
def title(self, lang = "en"):
if lang == "en":
return self.title()
elif lang == "tr":
return self.title()
koy = "Modiyes".lower()
print(koy.title(), type(koy))
builtins.str = gstr
koy = "Modiyes".lower()
print(koy.title(), type(koy))
re.search(r"{}".format(koy), "aaa Modiyes bbb")
我还没有进行任何操作,但是当我尝试新的字符串类时,它会在正则表达式搜索中抛出 TypeError: first argument must be string or compiled pattern。但它会正确打印它,并且 type(koy) 为两个类都显示<class 'str'>。我不明白正则表达式抛出这个错误有什么问题,知道吗?
非常感谢。
【问题讨论】:
-
另外,检查这个问题,有几个解决方案和实现你想要达到的目标:stackoverflow.com/questions/19030948/…
标签: regex python-3.x