除非x后面跟了另一个x,否则我怎样才能在右边匹配任意数量的空白呢?
到目前为止,我有:
find_nonSpace_rightSideOf_x = re.compile(r'x[\s]*')
但显然,即使文本是“xx”,这仍然会捕获。我如何让这个捕获“xaldkfjda”、“x”、“x adkf”等,但不是“xxaldkfjdlk”、“xx”等中的第一个x?
编辑:最后一句的结尾应该是“…但不是前两个x在:‘xxaldkfjdlk’,‘xx’等?”简而言之,我想抓住一个“x”,但从来没有两个“x”并排。这有帮助吗?到目前为止,感谢您的投入!
使用否定的前瞻断言:
re.compile(r'x(?!x)')
将捕获“xxaldkfjdlk”
中的第二个x
。
但不是第一个 X
要捕获空格,请添加:\s*
re.compile(r'x(?!x)\s*')
一些试验:
>>> m = re.compile(r'x(?!x)\s*')
>>> m.search('xx ')
<_sre.SRE_Match object; span=(1, 4), match='x '>
>>> m.search('xxaldkfjdlk')
<_sre.SRE_Match object; span=(1, 2), match='x'>
>>> m.search('xxxx')
<_sre.SRE_Match object; span=(3, 4), match='x'>
另一个简单的解决方案是这样的:
x[^x][\s]*
一、 e.“x”后跟“not-x”,后跟空格。
顺便说一句,一个非常有用的工具是python正则表达式测试器:http://pythex.org/
问题内容: 在正则表达式中匹配非ASCII字符的最简单方法是什么?我想在输入字符串中单独匹配所有单词,但是语言可能不是英语,因此我需要匹配ü,ö,ß和ñ。另外,这是在Javascript/ jQuery中,因此任何解决方案都需要适用于此。 问题答案: 应该这样做: 它匹配ASCII字符集(0-127,即0x0至0x7F)中不包含的任何字符。 您可以使用Unicode执行相同的操作: 对于unico
问题内容: 我在尝试将我的javascript regex经验转移到Python时遇到了麻烦。 我只是想让它工作: …但是它打印无。如果我做: 它匹配…默认情况下是否匹配字符串的开头?当匹配时,如何使用结果? 我如何进行第一场比赛?是否有比python网站提供的文档更好的文档? 问题答案: 隐式添加到您的正则表达式的开头。换句话说,它仅在字符串的开头匹配。 将在所有位置重试。 一般来说,建议您在需
问题内容: 我在用Python将字符串中的数字匹配时遇到麻烦。尽管应该明确匹配,但甚至不匹配 或仅匹配。我的监督在哪里? 问题答案: 阅读文档:http : //docs.python.org/2/library/re.html#re.match 如果在零个或多个字符 开头 的 字符串 您要使用(或)
有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。
问题内容: 我列出了大约12万个英语单词(基本上是该语言中的每个单词)。 我需要一个正则表达式,允许使用通配符aka 和来搜索这些单词。 一些例子: 如果用户搜索,它会匹配,例如或或。 如果用户搜索(以结尾的任何单词),则它将匹配或或或。 现在,大多数用户(尤其是对正则表达式不熟悉的用户)都知道,该用户只能替换1个字符,而可以替换0、1个或多个字符。我绝对想基于此构建我的搜索功能。 我的问题是:如
主要内容:基本模式匹配,字符簇,确定重复出现基本模式匹配 一切从最基本的开始。模式,是正则表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。例如: 这个模式包含一个特殊的字符 ^,表示该模式只匹配那些以 once 开头的字符串。例如该模式与字符串 "once upon a time" 匹配,与 "There once was