For example, I have a string "aout\>>>out\\nt\\<foo<<bar"
I'm having trouble finding regex that would find words:
"aout\>""out\\nt\\<foo""bar"
I am trying to exclude any '<' or '>' or '|' characters that are not escaped with '\'.
Right now, I have [^ \t\n] to give me all "words" without <>|, but I want to exclude the part of the string that has the expression (?:(?<!\\)[<>|]) (any non-negated <>|). Is there a way to combine these two expressions?
CodePudding user response:
You can use
(?:\\[<>|]|[^\s<>|])
See the regex demo. Details:
(?:- start of a non-capturing group:\\[<>|]- a\char and then a<,>or|char|- or[^\s<>|]- any char other than a whitespace,<,>and|
)- end of the non-capturing group, one or more repetitions.
