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?
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.
You can also do it this way.
the_list = re.compile(r'hello(?i)')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With