Как токенизировать, разбивая соседнюю цифру-букву? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь токенизовать что-то вроде hello world123 в hello, world и 123.У меня есть две части кода, которые, я думаю, нужны, но я не могу их правильно объединить tokenize.

(?u)\b\w+\b
(?<=\D)(?=\d)|(?<=\d)(?=\D)

1 Ответ

0 голосов
/ 07 февраля 2019

Вы можете использовать

import re
s = "hello world123"
print(re.findall(r'[^\W\d_]+|\d+', s))
# => ['hello', 'world', '123']

См. Демоверсию Python

Детали шаблона

  • [^\W\d_]+ - 1 или более букв
  • | - или
  • \d+ - 1+ цифр.

См. regex demo .

БОНУС : для сопоставления любых буквенных подстрок и чисел различных типов используйте

[^\W\d_]+|[-+]?\d*\.?\d+(?:[eE][+-]?\d+)?

См. это демонстрационное выражение regex .

См. Разумный синтаксический анализ научной нотации? для деталей регулярного выражения.

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