我想在Python 3.4+中使用正则表达式来匹配“#”符号+下一个小写字母的组合。字符串中有一堆模糊的数据,这使得我很难在一行干净的正则表达式中完成这项工作。下面是一个示例字符串:
Stack #Overflow is a question and answer website for #professional and enthusiast programmers.
我希望这里的正则表达式与单词#professional(因为它是小写)匹配,跳过#Overflow(因为它是大写)的出现。手术后,我想留下:
professional and enthusiast programmers
或
#professional and enthusiast programmers
我可以让它与第一个#with ^[^#]*
匹配,但是我没有看到一个好的方法将一系列字符放在其中,以指定下面的字符必须是小写的(a-z,等等)
我最初的想法是尝试^[^#a-z]*
,但这不起作用
有没有关于如何使用Python实现这一点的想法
您正在寻找一个“正向前瞻”锚点,该锚点不使用字符串的任何部分,而是在其后对字符进行断言
(?=...)
部分是正向前瞻,断言#
后面紧跟着一个小写字符。注意,这与第二个#
匹配,而不是第一个。从这里可以获得字符串的其余部分:_
这里是repl中的最后一个表达式(您希望在实际代码中将匹配项分配给一个变量)我认为您可以使用模式
r'#([a-z])(.*)'
和re.search
来获得预期的结果相关问题 更多 >
编程相关推荐