Матч или потенциальный матч питонаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Матч или потенциальный матч питона

Сообщение Anonymous »

Как мне использовать модуль регулярного выражения Python (), чтобы определить, был ли совпадение, или что может быть сделано потенциальное совпадение? Мне нужна функция, которая возвращает «да», если найдено, «может», если совпадение все еще может быть найдено, или «нет», если не можно найти совпадения.
Мы ищем шаблон один | .... | два | .... between are John, Malkovich, Stamos and Travolta).



Input
Result

< /thead>

Код: Выделить всё

One|John|Malkovich|Two|John|Stamos|Three|John|Travolta< /code> < /td>
 да < /td>
< /tr>

One|John|Two|John|Three|John< /code> < /td>
 да < /td>
< /tr>

One|Two|Three< /code> < /td>
 да < /td>
< /tr>

One|Two< /code> < /td>
 может быть < /td>
< /tr>

One< /code> < /td>
 может быть < /td>
< /tr>

Three|Two|One

no



Я понимаю, что примеры не герметичны, так что вот что у меня есть для Regex, чтобы получить "Да":

Код: Выделить всё

if re.match('One\|(John\||Malkovich\||Stamos\||Travolta\|)*Two\|(John\||Malkovich\||Stamos\||Travolta\|)*Three\|(John\||Malkovich\||Stamos\||Travolta\|)*', 'One|John|Malkovich|Two|John|Stamos|Three|John|Travolta') != None
return 'Yes'
Очевидно, что если шаблон составляет три | Two | one вышеуказанное потерпит неудачу, и мы можем вернуть «нет», но как мне проверить на случай «возможно»? Я думал о гнездовании скобок, как так (примечание, не проверено): < /p>

Код: Выделить всё

if re.match('One\|((John\||Malkovich\||Stamos\||Travolta\|)*Two(\|(John\||Malkovich\||Stamos\||Travolta\|)*Three\|(John\||Malkovich\||Stamos\||Travolta\|)*)*)*', 'One|John|Malkovich|Two|John|Stamos|Three|John|Travolta') != None
return 'Yes'
Но я не думаю, что это сделает то, что я хочу, чтобы он сделал. Я сопоставляю с такими шаблонами, как in_move , in_create , in_open , и я регистрирую их и получаю сотни из них, затем я захожу, а затем ищу конкретный шаблон, такой как in_access ... ...

Код: Выделить всё

IN_MODIFY
, но в некоторых случаях я не хочу in_delete после in_open и в других, я делаю. Журналы мгновенно, но я хочу держаться за них только столько, сколько необходимо. «Может быть» означает, что не стереть журналы. «Да» означает что -то делать, затем стирайте журнал, а «нет» означает, что не делать ничего, кроме как все еще стирайте журналы. петля.

Подробнее здесь: https://stackoverflow.com/questions/106 ... tial-match
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»