Python 3.x 字符串末尾未识别转义字符

Python 3.x 字符串末尾未识别转义字符,python-3.x,regex,Python 3.x,Regex,我正在用Python编写代码来测试GUI组件。我将字符串与属性框中的值进行比较。我正在搜索的文本以*字符结尾,并被视为野生。这就是我所期望的,所以我自然地在*之前添加了一个\来逃避它。传入的变量“value”为(text)1/\* if node.exists and node.JavaFXObjectText == value: string = type + " for node and selection details match." 它不输入if语句,因为node.Java

我正在用Python编写代码来测试GUI组件。我将字符串与属性框中的值进行比较。我正在搜索的文本以
*
字符结尾,并被视为野生。这就是我所期望的,所以我自然地在
*
之前添加了一个
\
来逃避它。传入的变量
“value”
(text)1/\*

if node.exists and node.JavaFXObjectText == value:
    string = type + " for node and selection details match." 
它不输入if语句,因为
node.JavaFXObjectText
(text)1/*
,值是
(text)1/\*
。我还尝试使用
re.escape()
函数,得到了相同的结果。这个问题似乎只有在我试图转义的字符是字符串中的最后一个字符时才会发生,因为我在同一if语句中使用了其他正则表达式。我也在没有
\
的情况下尝试过,而
*
仍然被视为野生动物。

使用

if node.exists and node.JavaFXObjectText == re.sub(r'\\\*$', '*', value):
要用
*
符号替换字符串末尾的
\*

使用

if node.exists and node.JavaFXObjectText == re.sub(r'\\\*$', '*', value):

要将字符串末尾的
\*
替换为
*
符号。

Ryszard Czech,我需要对该子函数中的情况进行一些研究,但它没有完全起作用。我的行为和以前一样

re.sub(r'\\*$','*',value)


删除上面代码片段中的一个
\
使其工作,尽管我不知道为什么。

Ryszard Czech,我需要对该子函数中发生的情况进行一些研究,但它没有完全工作。我的行为和以前一样

re.sub(r'\\*$','*',value)


删除上面代码片段中的一个
\
使其工作,尽管我不知道为什么。

您的
\*$
正则表达式匹配字符串末尾的零个或多个
\
字符。因此,您可以删除字符串末尾的所有
*
,并附加一个
*
,或者只在不以
*
结尾的字符串末尾附加一个
*
。这听起来不像您需要的。您的
\*$
正则表达式在字符串末尾匹配零个或多个
\
字符。因此,您可以删除字符串末尾的所有
*
,并附加一个
*
,或者只在不以
*
结尾的字符串末尾附加一个
*
。这听起来不像你需要的。