查找子字符串的正则表达式

塞卡特:

我正在尝试使用正则表达式查找子字符串的所有出现。子字符串由三部分组成,以一个或多个“ A”开头,然后是一个或多个“ N”,最后以一个或多个“ A”结尾。让一个字符串“ AAANAANABNA”,如果我解析该字符串,我应该得到两个子字符串“ AAANAA”“ AANA”作为输出。因此,我尝试了以下代码。

import regex as re
reg_a='A+N+A+'
s='AAANAANABNA'
sub_str=re.findall(reg_a,s,overlapped=True)
print(sub_str)

而且,我得到以下输出,

['AAANAA', 'AANAA', 'ANAA', 'AANA', 'ANA']

但是,我希望输出为

['AAANAA', 'AANA']

也就是说,第一场比赛的尾随A应该是下一场比赛的领先A。我怎么能知道呢?

维基百科

确保A左侧没有

>>> reg_a='(?<!A)A+N+A+'
>>> print( re.findall(reg_a,s,overlapped=True) )
['AAANAA', 'AANA']

(?<!A)A+N+A+场比赛

  • (?<!A) -与位置不匹配的负向后搜索 A
  • A+-一个或多个A小号
  • N+-一个或多个N小号
  • A+-一个或多个A小号

请注意,您也可以re用来获取匹配项:

>>> import re
>>> re_a = r'(?=(?<!A)(A+N+A+))'
>>> print( re.findall(re_a, s) )
['AAANAA', 'AANA']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用正则表达式在Java中查找子字符串?

使用正则表达式从复杂字符串中查找子字符串

正则表达式查找子字符串

使用正则表达式查找/替换NSString中的子字符串

使用正则表达式查找字符串中的子词

POSIX ERE正则表达式以查找重复的子字符串

正则表达式:查找文本中的所有子字符串

Jmeter在Groovy中使用正则表达式查找子字符串

正则表达式:查找句子中的子字符串

如何使用正则表达式在Bash中查找递归子字符串?

正则表达式查找日期字符串

使用正则表达式查找子字符串

正则表达式-查找不包含子字符串的多行字符串

Notepad ++正则表达式查找包含子字符串的XML属性

Python使用正则表达式查找子字符串的起始位置

在C#中使用正则表达式查找和替换子字符串

使用正则表达式在Java中查找子字符串

需要正则表达式来查找特定模式的所有子字符串

使用正则表达式或安全的方法查找子字符串

Python:在文件中使用正则表达式查找子字符串

Python正则表达式查找子字符串

正则表达式查找子字符串

使用正则表达式查找子字符串

在正则表达式 excel/vba 中查找子字符串

正则表达式:如何查找不包含某个单词的子字符串

使用正则表达式在c#中查找子字符串

使用正则表达式查找子字符串的长度

正则表达式(VS Code)查找和替换子字符串

如何使用正则表达式在 std::string 中查找子字符串