zentenk
zentenk

Reputation: 2815

Regex is not matching in the way that I want to

Hi I'm new to regexes.

I have a string that I want to match any number of A-Z a-z 0-9 - and _

I've tried the following in python however it always matches, even the empty space. Can someone tell me why that is?

re.match(r'[A-Za-z0-9_-]+', 'gfds9 41.-=,434')

Upvotes: 0

Views: 76

Answers (2)

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 799130

Your regex matches one or more of those characters. Your text starts with one or more of those characters, hence it matches. If you want it to only match those characters then you have to match them from the beginning to the end of the text.

re.match(r'^[A-Za-z0-9_-]+$', 'gfds9 41.-=,434')

Upvotes: 4

Bogdan Emil Mariesan
Bogdan Emil Mariesan

Reputation: 5647

Try the alternative for it maybe it will work for you:

[\w-]+

EDIT:

Although the initial regex you provided also works for me.

Upvotes: 0

Related Questions