[英]Regular expression error in python : sre_constants.error: nothing to repeat
我只在字母前后帶有+
才嘗試返回True
def SimpleSymbols(string):
if re.search(r"(?<!+)\w(?!+)", string) is None :
return True
else:
return False
未轉義的+
是一個量詞,可將其修改的模式重復1次或多次。 要匹配文字+
,您需要對其進行轉義。
但是, (?<!\\+)
和(?!\\+)
將做相反的事情:如果在char之前或之后加上+
則它們將使匹配失敗。
另外, \\w
不僅與字母匹配,還與字母,數字,下划線匹配,並且在Python 3.x中具有Unicode支持(在Python 2.x中具有re.U
)甚至更多的字符。 您可以改用[^\\W\\d_]
。
采用
def SimpleSymbols(string):
return bool(re.search(r"\+[^\W\d_]\+", string))
如果字符串中有+[Letter]+
,則返回True
,否則返回False
。
參見Python演示 :
import re
def SimpleSymbols(string):
return bool(re.search(r"\+[^\W\d_]\+", string))
print(SimpleSymbols('+d+dd')) # True
print(SimpleSymbols('ddd')) # False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.