结合Python的Regex(re库)和逆/负匹配,我读过的每一个主题都集中在多行字符串上,而不是单一的行字符串。在
除了http://www.regextester.com/15使用JavaScript正则表达式库显示整个组(/g)的匹配项之外,它的行为与Python的re库不同(显然,根据https://rexegg.com/在Python中还有另一个regex库我还不想使用),我还想知道是否有一种方法可以使用它。”关于芬德尔“(是的搜索尽管我知道关于芬德尔)做2件事。返回以下qw中不包含字符串“hede”的所有单个字符串。2返回不包含字符串“hede”的所有单个字符串,并断开两边包含字符串“hede”的字符串。在
>>> qw = "hoho hihi haha hede rara a rere titi so whdhdskhdshede wekjewhkwqjhededjfjfj so kjkfdjkdnekjdhide b hede kdjkdld"
场景1期望输出(排除包含“hede”的所有字符串):
^{pr2}$场景2所需的输出(包括不包含“hede”的所有内容以及在“hede”处包含“hede”的中断字符串):
>>> qw ='hoho hihi haha hede rara a rere titi so whdhdskhdshede wekjewhkwqjhededjfjfj so kjkfdjkdnekjdhide b hede kdjkdld'
>>> re.findall('{SOMETHING_THAT_INCLUDES_ALL_STRINGS_NOT_COTAINING_hede_AND_BREAKS_THEM_IF_THEY_DO}', qw)
['hoho', 'hihi', 'haha', 'rara', 'a', 'rere', 'titi', 'so', 'whdhdskhds', 'wekjewhkwqj', 'djfjfj', 'so' 'kjkfdjkdnekjdhide', 'b', 'kdjkdld']
我最近来的地方效率太低了:
>>> qw ='hoho hihi haha hede rara a rere titi so whdhdskhdshede wekjewhkwqjhededjfjfj so kjkfdjkdnekjdhide b hede kdjkdld'
>>> re.findall('[\S]+(?=hede)|(?<=hede )[\S]+|(?<=hede)[\S]+|[\S]+(?= hede)|[\S]+(?=hede )|(?<= hede)[\S]+', qw)
['haha', 'rara', 'whdhdskhds', 'wekjewhkwqj', 'djfjfj', 'b', 'kdjkdld']
在这两个词之间保持一个很强的空间。我不禁想知道,如果间距存在差异,也就是qw等于以下值,是否有可能找到解决方案:
>>> qw = "hoho hihi haha hede rara a rere titi so whdhdskhdshede wekjewhkwqjhededjfjfj so kjkfdjkdnekjdhide b hede kdjkdld"
一。在
谢谢你们的帮助。在
另外,在每一个帖子里我都读到了“^(?)?!赫德)。*$”或“^(?)?!。福奥)。“已出现多行帖子。当然,这在Python中不太好用,但是我尝试过用它们来胡闹,但是没有用。在
非常感谢你们的帮助!在
我建议利用仅返回捕获文本的^{} 功能:
因此,您可以匹配并捕获您需要的内容,而只需匹配您需要的跳过。请参见Python演示:
参见Python demo。在
由于
hede
未被捕获,因此不会返回它,但是由于有1个捕获组并且它不参与匹配,所以每次与未捕获的模式匹配时,都会向结果列表中添加一个空字符串。在图案细节
hede
-匹配hede
|
-或((?:(?!hede)\S)+)
-匹配并将一个或多个非空白字符捕获到组1中,这些字符不是hede
序列的起始点。在请注意,如果使用PyPi ^{} modile ,则可以使用PCRE-like verbs ^{} :
^{pr2}$那么,就不需要
filter
结果了。在相关问题 更多 >
编程相关推荐