仅当字母前后有True
时,我才尝试返回+
def SimpleSymbols(string):
if re.search(r"(?<!+)\w(?!+)", string) is None :
return True
else:
return False
答案 0 :(得分:1)
未转义的+
是一个量词,可将其修改的模式重复1次或多次。要匹配文字+
,您需要对其进行转义。
但是,(?<!\+)
和(?!\+)
的作用相反:如果在+
前面或后面有一个字符,则匹配将失败。
此外,\w
不仅仅与字母匹配,它还与字母,数字,下划线以及Python 3.x中的Unicode支持(或Python 2.x中的re.U
)匹配更多字符。您可以改用[^\W\d_]
。
使用
def SimpleSymbols(string):
return bool(re.search(r"\+[^\W\d_]\+", string))
如果字符串中有True
,则返回+[Letter]+
;如果不匹配,则返回False
。
请参见Python demo:
import re
def SimpleSymbols(string):
return bool(re.search(r"\+[^\W\d_]\+", string))
print(SimpleSymbols('+d+dd')) # True
print(SimpleSymbols('ddd')) # False