Поиск текста для шаблона с прерываниями к шаблону - PullRequest
0 голосов
/ 03 октября 2019

Мне нужен гибкий способ поиска шаблона в строке.

Скажем, наш шаблон 'GEEGG'.

Я хочу определить, что строка имеет этот шаблон, позволяя 'прерывать''и' фланкирующие 'символы.

• Символ прерывания для' GEEGG '=' GEGEGG 'или' GEEGEG '• Символ фланкирования для' GEEGG '=' GGEEGG 'или' GEEGGE '

Iне может предложить простой / элегантный способ решения этой проблемы.

Все следующие queries должны соответствовать pattern

pattern = 'GEEGG'
query_flank = '--GEEGG--'
query_flank2 = '--GE--GEEGG--'
query_interrupt = '--G-E-E-G-G-'
query_interrupt2 = '--G-E-G-E-E-G-G'

1 Ответ

1 голос
/ 03 октября 2019

Библиотека Python REGEX может попробовать следующее с '* звездочкой' или '. * Period звездочкой', чтобы сопоставить что-либо между:


import re
txt = "<to search>"
x = re.search("*G*E*E*G*G*", txt)

*** (обновленный ответ ниже после комментария rici)

import re

pattern = 'GEEGG'
query_flank = '--GEEGG--'
query_flank2 = '--GE--GEEGG--'
query_interrupt = '--G-E-E-G-G-'
query_interrupt2 = '--G-E-G-E-E-G-G'


txt = "--GEEGG--"
x = re.search("G*E*E*G*G", txt)
print("print x")
print(x)

import re


pattern = 'GEEGG'
query_flank = '--GEEGG--'
query_flank2 = '--GE--GEEGG--'
query_interrupt = '--G-E-E-G-G-'
query_interrupt2 = '--G-E-G-E-E-G-G'


txt = "--GEEGG--"
y = re.search("G.*E.*E.*G.*G*", txt)
print("print y")
print(y)

OUTPUT:
print x
<re.Match object; span=(2, 7), match='GEEGG'>
print y
<re.Match object; span=(2, 9), match='GEEGG--'>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...