Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python Upper and Lowercase Criteria in String Regex

Tags:

python

regex

I am trying to write a regular expression that scans a string and finds all instances of "hello", with both capital and lowercase letters. The problem is that while a simple

the_list = re.compile(r'hello')

would suffice for only "hello" in the string, I would like the expression to be able to find all versions of "hello" with both capitalized and lowercase letters, such as:

Hello, HELlo, hEllo, HELLO, heLLO, etc.

I have also tried:

the_list = re.compile(r'[a-z][A-Z]hello')

But no luck. Could anyone explain a better way to write this regular expression?

like image 460
Ajax1234 Avatar asked May 16 '17 15:05

Ajax1234


2 Answers

Just use the IGNORECASE flag the re module provides:

the_list = re.compile(r'hello', flags=re.IGNORECASE)

If you want to write less, this is sufficient enough:

the_list = re.compile(r'hello', re.I)

Since re.I is just another way of writing re.IGNORECASE

Here's the documentation for re.IGNORECASE:

Perform case-insensitive matching; expressions like [A-Z] will match lowercase letters, too. This is not affected by the current locale and works for Unicode characters as expected.

like image 183
Taku Avatar answered Nov 08 '22 04:11

Taku


You can also do it this way.

the_list = re.compile(r'hello(?i)')
like image 1
Jay Bayona Avatar answered Nov 08 '22 04:11

Jay Bayona