簡體   English   中英

python中的正則表達式錯誤:sre_constants.error:無需重復

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM