====== Regex - All Text Not Containing ====== ===== Text that does not contain ~ ===== [^~\x22]+ ---- ===== Match anything except \n ===== .* ---- ===== Match strings that do not start with a sequence ===== Ignore strings that start with the label "abc_". Use a negative look-ahead assertion: ^(?!abc_).+ Or, use a negative look-behind assertion: (^.{1,3}$|^.{4}(? Or, use plain old character sets and alternations: ^([^a]|a($|[^b]|b($|[^c]|c($|[^_])))).* ---- ===== Match strings that do not end in particular sequence ===== Use a negative lookbehind assertion: ^[/\w\.-]+(? or, use a lookahead: ^(?!.*\.html$)[/\w\.-]+$ or, another use of a lookahead assertion: /((?!\.html$)[/\w.-])+/ **NOTE:** * **(** - Start a group for the purposes of repeating. * **(?!\.html$)** - Negative lookahead assertion for the pattern **/\.html$/**. * **[/\w.-]** - The pattern for matching a URL character. * **)+** - Repeat the group. To force it to match the entire string, anchor the entire pattern with **^** at the start and **$** at the end; otherwise it is free to only match a portion of the string. With this change, it becomes: /^((?!\.html$)[/\w.-])+$/ ---- ===== References ===== https://www.regular-expressions.info/lookaround.html