Skip to content
Advertisement

find words of length 4 using regular expression

I am trying to find words in regular expression with length 4

I am trying this but I am getting an empty list:

#words that have length of 4
s = input("please enter an expression: ")
print(re.findall(r'/^[a-zA-Z]{4}$/',s))

What is wrong with my code ?

my input is: here we are having fun these days

my expected output: ['here', 'days']

my output: []

Advertisement

Answer

Use word boundaries b. When you add anchors in your regex like ^[a-zA-Z]{4}$, this would match the lines which have only four alphabets. It won’t check for each individual words. ^ asserts that we are at the start and $ asserts that we are at the end. b matches between a word character and a non-word character(vice versa). So it matches the start (zero width) of a word or end (zero width) of a word.

>>> s = "here we are having fun these days"
>>> re.findall(r'b[a-zA-Z]{4}b', s)
['here', 'days']
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement