Вопрос

I can\'?t (.*)

My regex is of the above form. But my match object doesn't match if the string given to it ends after t

re.compile(r'I can\'?t (.*)').match(str)

If str = "I cant", it doesn't work. But if str = "I can't use", it works (match returns something).

Это было полезно?

Решение

You left a mandatory space after the t. Remove it and you'll be fine:

I can\'?t(.*)

Also note that the brackets are only useful if you want to use the content of the first capturing group, if not you can safely remove them.

Другие советы

For that you can do:

re.compile(r'I can\'?t.*').match(str)

This will match either "I can't" with some other text following or just "I can't"

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top