Python 正则表达式:从字符串中搜索一个数字,并排除以'开头的数字(可以是整数/浮点);N';

Python 正则表达式:从字符串中搜索一个数字,并排除以'开头的数字(可以是整数/浮点);N';,python,regex,python-3.x,Python,Regex,Python 3.x,我试图排除以N开头的数字。为此,我使用了反向跟踪,下面是我用于从表达式中排除N10.5的正则表达式 expression = "N10.5*33+31" variable_refs = re.compile(r'\b(?<!N)([0-9])+(\.)?(\d+)?') exp_template = re.sub(variable_refs, r'{key_\1}', expression) print(exp_template) expression=“N10.5*33+31” 变量_

我试图排除以N开头的数字。为此,我使用了反向跟踪,下面是我用于从表达式中排除N10.5的正则表达式

expression = "N10.5*33+31"
variable_refs = re.compile(r'\b(?<!N)([0-9])+(\.)?(\d+)?')
exp_template = re.sub(variable_refs, r'{key_\1}', expression)
print(exp_template)
expression=“N10.5*33+31”

变量_refs=re.compile(r'\b(?您可以使用此正则表达式:

(?<![N\d.])(\d+)(?:\.\d+)?
(?


(?是否定的查找后断言,如果前一个字符是
N
或数字或点,则匹配失败。

您可以使用此正则表达式:

(?<![N\d.])(\d+)(?:\.\d+)?
(?


(?是否定的查找后断言,如果前一个字符是
N
或数字或点,则匹配失败。

您有什么问题?此正则表达式工作不正常。您的预期输出不是
N10.5*{key\u 33}+{key\u 31}
因为您不想匹配前面有
N
的数字?您有什么问题?这个正则表达式工作不正常。您的预期输出不是
N10.5*{key\u 33}+{key\u 31}
吗?因为您不想匹配前面有
N
的数字吗?我尝试了变量\u refs=re.compile(r'\b((?也不需要使用此方法
\b
)我尝试了变量\u refs=re.compile(r'\b)(?也不需要使用此方法
\b