我希望创建一个正则表达式,它允许一个或两个单词边界,但不能为零。
例如,对于单词term:
a term is <-- 是的,前后空格(两个边界)the terms are <-- 是的,前面有空格(一个边界)the midterm was <-- 是的,后面的空格(一个边界)the midterms were <-- 否(零字边界)会是最好的正则表达式吗?我最初的想法是:
\bterm|term\b|\bterm\b#(没有?打开\b)但这似乎太冗长了。什么可能是更好的?
使用条件:
(\b)?term(?(1)|\b)
Run Code Online (Sandbox Code Playgroud)
见证明。如果前面有单词边界,则不要在末尾强制执行。否则,需要在末尾有一个字边界。
如果条件不可用,请使用交替:
\bterm|term\b
Run Code Online (Sandbox Code Playgroud)
参见另一个证明。