У меня есть регулярное выражение, которое соответствует всем трем символов слова в строке:Python Regex не соответствует. (Точка) как символ
\b[^\s]{3}\b
Когда я использую его со строкой:
And the tiger attacked you.
это результат:
regex = re.compile("\b[^\s]{3}\b")
regex.findall(string)
[u'And', u'the', u'you']
Как вы можете видеть, это соответствует вам как слово из трех символов, но я хочу, чтобы выражение принимало вас. с "." как слово 4 символа.
У меня такая же проблема с «», „“, „:“ и т.д.
Я довольно новым с регулярным выражением, но я предполагаю, что это происходит потому, что эти символы рассматриваются как границы слов.
Есть ли способ сделать это?
Спасибо заранее,
EDITThaks к ответам @BrenBarn и @Kendall Frey мне удалось добраться до регулярных выражений я искал:
(?<!\w)[^\s]{3}(?=$|\s)
Это, очевидно, не будет соответствовать ничего 4-символьный, если сказать ему, он должен соответствовать ровно 3 символов. Какие именно правила вы хотите использовать, чтобы решить, когда/когда нужно соответствовать четвертому персонажу? – BrenBarn
Я не хочу, чтобы это соответствовало, я просто хочу, чтобы вы были обработаны как 4-символьные слова, чтобы он не соответствовал регулярному выражению. – xgusix
Какие символы вы хотите считать границами слов? – BrenBarn