Определение типа регулярного выражения - PullRequest
0 голосов
/ 05 декабря 2018

Как использовать регулярное выражение для разбиения строки на токены и вызова функции для требуемого токена.Например:

Привет -> ru_word_func ()
SPACE -> space_func ()
world -> en_word_func ()
! -> pnct_func ()

1 Ответ

0 голосов
/ 05 декабря 2018

Как то так?

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import re

input = """
Привет SPACE world !
"""

d = {
    "Привет": "ru_word_func",
    "SPACE": "space_func",
    "world": "en_word_func",
    "!": "pnct_func"
}

def ru_word_func():
    print("ru_word_func")

def space_func():
    print("space_func")

def en_word_func():
    print("en_word_func")

def pnct_func():
    print("pnct_func")


g = re.findall(r"[^\s]+", input, re.MULTILINE)

for i in g:
    if i in d:
#       print(d[i])
        a = d[i]
        globals()[a]()

Вывод:

ru_word_func
space_func
en_word_func
pnct_func
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...