Python Regex To Match Words Not Having Dot
Solution 1:
You are looking for "^\w+\.flower$"
.
Solution 2:
Is this sufficient?
^\w+\.\w+$
Solution 3:
Here is the regex for you. ^([^\.]*)\.flower$
.
Example: https://regex101.com/r/cSL445/1.
Solution 4:
Your case of pink.blue.flower
is unclear. There are 2 possibilities:
- Match only
blue
(cut off preceding dot and what was before). - Reject this case altogether (you want to match a word preceding
.flower
only if it is not preceded with a dot).
In the first case accept other answers.
But if you want the second solution, use: \b(?<!\.)[a-z]+(?=\.flower)
.
Description:
\b
- Start from a word boundary (but it allows the "after a dot" case).(?<!\.)
- Negative lookbehind - exclude the "after a dot" case.[a-z]+
- Match a sequence of letters.(?=\.flower)
- Positive lookahead for.flower
.
I assumed that you have only lower case letters, but if it is not the case,
then add i
(case insensitive) option.
Another remark: Other answers include \w
, which matches also digits and
_
or even [^\.]
- any char other than a dot (including e.g. \n
).
Are you happy with that? If you aren't, change to [a-z]
(again, maybe
with i
option).
Solution 5:
To match any character except a newline or a dot you could use a negated character class[^.\r\n]+
and repeat that one or more times and use anchors to assert the start ^
and the end $
of the line.
Or you could specify in a character class which characters you would allow to match followed by a dot \.
and flower
.
Post a Comment for "Python Regex To Match Words Not Having Dot"