至少需要一个词边界

sam*_*249 8 regex

我希望创建一个正则表达式,它允许一个或两个单词边界,但不能为零。

例如,对于单词term

  • a term is <-- 是的,前后空格(两个边界)
  • the terms are <-- 是的,前面有空格(一个边界)
  • the midterm was <-- 是的,后面的空格(一个边界)
  • the midterms were <-- 否(零字边界)

会是最好的正则表达式吗?我最初的想法是:

但这似乎太冗长了。什么可能是更好的?

Rys*_*ech 0

使用条件:

(\b)?term(?(1)|\b)
Run Code Online (Sandbox Code Playgroud)

证明。如果前面有单词边界,则不要在末尾强制执行。否则,需要在末尾有一个字边界。

如果条件不可用,请使用交替:

\bterm|term\b
Run Code Online (Sandbox Code Playgroud)

参见另一个证明