首页 > 解决方案 > 以单个下划线字符结尾的字符串

问题描述

我正在尝试找到正确的正则表达式来检测以单个下划线结尾的字符串,例如hello_, this_. 到目前为止,我已经re.match("[aA-zZ](_)", string)检测到诸如 day__、ball__ 之类的字符串,即带有两个我不想要的下划线。最后如何获得带有单个下划线的字符串的任何想法。

谢谢

标签: pythonregex

解决方案


您可以使用

re.search(r"(?<!_)_$", s)

请参阅正则表达式演示。查看正则表达式图:

在此处输入图像描述

细节

  • (?<!_)- 一个消极的lookbehind_ ,确保当前位置的左边没有立即出现
  • _- 一个下划线
  • $- 字符串结束。

请注意,您需要re.search在字符串内的任何位置查找匹配,而不是re.match仅在字符串的开头匹配。


推荐阅读