регулярное выражение на питоне, выбирающее только однозначное число - PullRequest
0 голосов
/ 07 декабря 2018

Мне бы хотелось, чтобы было выбрано только однозначное число .
В Windows python, используя японский unicode, я имею:

s = "17 1 27歳女1"
re.findall(r'[1-7]\b', s)

Мне нужно сопоставить второе 1 и последнее 1 в s - не 17 начальное 1.
Желаемый результат:

['1', '1'] 

Ответы [ 2 ]

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

Это регулярное выражение, которое вы ищете:

(?<!\d)[1-7](?!\d)

Тест:

import re
s="17 1 27歳女1"
re.findall(r'(?<!\d)[1-7](?!\d)', s)

Вывод:

['1', '1']
0 голосов
/ 07 декабря 2018

Попробуйте использовать негатив-взгляд назад (?<!\d).Это будет игнорировать совпадения, где цифре предшествует другая, т.е.:

import re

s = "17 1 27歳女1"
x = re.findall(r"(?<!\d)[1-7]\b", s)
print(x)
# ['1', '1']

Regex Demo
Python Demo


Regex Объяснение:

enter image description here

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