Regex with exclusion chars and another regex

99封情书 提交于 2019-12-05 20:13:48
Unihedron

See this regex:

/(?<=\s)(?!\S*[#*])(?!\S*level[0-9])\S+/

Regex explanation:

  • (?<=\s) Asserts position after a whitespace sequence.
  • (?!\S*[#*]) Asserts that "#" or "*" is absent in the sequence.
  • (?!\S*level[0-9]) Asserts that level[0-9] is not matched in the sequence.
  • \S+Now that our conditionals pass, this sequence is valid. Go ahead and use \S+ or \S++ to match the entire sequence.

To use lookaheads more exclusively, you can add another (?!\S*<false_to_assert>) group.

View a regex demo!


For this specific case you can use a double negation trick:

/(?<=\s)(?!\S*level[0-9])[^\s#*]+(?=\s)/

Another regex demo.


Read more:

Tag Groff

you can simply OR the searches with the pipe character [^\s#*]+|level[0-9]+

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!