正则表达式:想要消除破折号开头的情况

Regex : Want to eliminate dash start case

我有以下条件。

所以我得到了这样的样本...

int page = 1
int page=1
import common.abc.page.PageSize;
import common.abc.page.*;
document.aForm.page=1;
map.put("page", 1);
response.write("<a href=\"page=1\">");
pageContent
class="page-context"
class="empty-page"
<%@ page
<%@ jsp:include page
scope="page"
someObject.page();
int pageSize =  7;

这就是我为追求目标所做的。 /\b(?!-)(page)(?!-)\b/mg.

没有一个案例我工作得很好 - 那个在页面前面有破折号。 empty-page 不应与正则表达式匹配。 (第8、9、10行和最后一行应该不匹配)

我该如何解决?谢谢

您可以将此正则表达式与前瞻和后视断言一起使用:

(?<!-)\bpage\b(?!-)

RegEx Demo

正则表达式详细信息:

  • (?<!-):如果我们在当前位置
  • 的左侧有-,则否定后视使匹配失败
  • \bpage\b: 匹配精确词page\b用于词边界)
  • (?!-):如果我们在当前位置
  • 的右侧有-,则否定前瞻使匹配失败