下面的匹配模式会查找字符/
,该字符前面没有空格,但后面有空格、点或行。
>>> import re
>>> re.search(r"[^ ]/([ .]|$)", "Foo /markup/ bar")
<re.Match object; span=(10, 13), match='p/ '>
字符串
我感兴趣的不仅仅是/
和它的位置。这里我使用简化的正则表达式作为MWE。在原来的例子中,我不能只做pos = m.start() + 1
来得到/
的位置。
我假设 * 没有捕获组 *((?:)
),但我不能让他们工作。我期望的结果是
<re.Match object; span=(11, 11), match='/'>
型
我做错了什么?
>>> re.search(r"(?:[^ ])/(?:[ .]|$)", "Foo /markup/ bar")
<re.Match object; span=(10, 13), match='p/ '>
型
1条答案
按热度按时间nzrxty8p1#
您可以使用
字符串
参见online Python demo。
(?<!\s)
-负向后查找,匹配前面没有空格的位置/
- a/
字符(?![^\s.])
-一个负的lookahead,需要一个空格,.
字符或字符串结尾,紧邻当前位置的右边。注意:如果您不希望匹配在字符串的开头,请将
(?<!\s)
替换为(?<=\S)
,这将要求任何非空白字符立即出现在/
字符的左侧。