Python 以单个下划线字符结尾的字符串
我试图找到正确的正则表达式来检测以单下划线结尾的字符串,例如,Python 以单个下划线字符结尾的字符串,python,regex,Python,Regex,我试图找到正确的正则表达式来检测以单下划线结尾的字符串,例如,hello\uu,this\u。到目前为止,我已经进行了re.match(“[aA zZ](uuz)”,string)但是检测到了像day、ball这样的字符串,也就是说,带有两个我不想要的下划线。任何想法如何获得字符串与一个单一的下划线在最后 谢谢您可以使用 re.search(r"(?<!_)_$", s) re.search(r)(?您可以使用 re.search(r"(?<!_)_$", s) re.searc
hello\uu,this\u
。到目前为止,我已经进行了re.match(“[aA zZ](uuz)”,string)
但是检测到了像day、ball这样的字符串,也就是说,带有两个我不想要的下划线。任何想法如何获得字符串与一个单一的下划线在最后
谢谢您可以使用
re.search(r"(?<!_)_$", s)
re.search(r)(?您可以使用
re.search(r"(?<!_)_$", s)
re.search(r)(?您可以使用此正则表达式:
REGEX = re.compile(r'[^_]_$')
REGEX.search(string)`
您可以使用此正则表达式:
REGEX = re.compile(r'[^_]_$')
REGEX.search(string)`
您还可以将角色类更新为使用a-z和a-z,然后匹配单个下划线:
[a-zA-Z]_$
例如使用
请注意,[aA zZ]
这与[A-z]
中的[A-zA-z]
相同,您还可以更新角色类以使用A-z和A-z,然后匹配单个下划线:
[a-zA-Z]_$
例如使用
请注意,[aA zZ]
这与[A-z]
中的[A-zA-z]
相同,我知道您要求一个正则表达式,但也可以通过以下方法实现:
s = "hello__"
s.endswith("_") and not s[:-1].endswith("_")
# False
我知道你要求一个正则表达式,但这也可以通过以下方式实现:
s = "hello__"
s.endswith("_") and not s[:-1].endswith("_")
# False
在末尾添加一个$
你确定这正是你正在使用的正则表达式吗?因为在我的机器上,re.match([aA zZ](uuz)”,“day_uuz”)不返回任何值。@Kevin可能是区域设置问题;ord(“a”)
,这意味着括号表达式可能与第一个\u
@Darkmoor匹配,或者尝试一个不太模棱两可的括号表达式,如[a-zA-Z]
@chepner,我同意[aA zZ]
可以匹配非字母数字字符,如[\\]^_
和tilde。但我更多的是指它只匹配一个字符,并且在模式中缺少了一个+
或*
。在末尾添加一个$
你确定这正是你正在使用的正则表达式吗?因为在我的机器上,re.match([aA zZ](uuu)”,“day_uuu”)
返回None。@Kevin可能是区域设置问题;ord(“a”)
,这意味着括号表达式可能与第一个\ucode>@Darkmoor匹配,或者尝试一个不太模棱两可的括号表达式,如[a-zA-z]
@chepner,我同意[aA zZ]
可以匹配非字母数字字符,如[\\]^_
和tilde。但我更多的是指它只匹配一个字符,并且在模式中缺少一个+
或*
。您可以安全地从正则表达式中删除*
,+1Definetly!谢谢。您可以安全地从正则表达式中删除*
,+1Definetly!谢谢。我想最好是删除e> +
来自regex,因为初始值在这里不重要,@codemanic你完全正确,更新了。谢谢!我想最好从regex中删除+
,因为初始值在这里不重要,@codemanic你完全正确,更新了。谢谢!无需制作一份带有片段的列表副本:而不是s.endswith(“\uuuuuuuu”)
。无需制作带有切片的列表副本:而不是s.endswith(“\uuu”)
。