'regex - match character which is not escaped
I'm trying to make a regex to match unescaped comma characters in a string.
The rule I'm looking for is "A comma not preceded by an even number of backslashes".
Test cases:
True abc,abc
False abc\,abc
True abc\\,abc
False abc\\\,abc
True abc\\\\,abc
False abc\\\\\,abc
I tried to use a negative look-behind: (?<!(\\+)),
but Python gives me error: look-behind requires fixed-width pattern
.
Solution 1:[1]
Try this regex: (?<!\\)(?:\\\\)*,
Explanation:
(?<!\\) Matches if the preceding character is not a backslash
(?:\\\\)* Matches any number of occurrences of two backslashes
, Matches a comma
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |