【问题标题】:Regex : Want to eliminate dash start case [duplicate]正则表达式:想要消除破折号开始的情况[重复]
【发布时间】:2019-08-26 19:39:41
【问题描述】:

我有以下条件。

  • 它将搜索术语“页面”
  • 它捕获字符串页面 - 带引号
  • 它捕获变量赋值,例如 - int page=1
  • 它不会捕获带有破折号的字符串 - “page-context”、“previous-page”

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

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 行和最后一行不应匹配)

我该如何解决?谢谢。

【问题讨论】:

    标签: regex pcre


    【解决方案1】:

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

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

    RegEx Demo

    正则表达式详细信息:

    • (?&lt;!-):如果我们在当前位置的左侧有-,则负向查找失败
    • \bpage\b:匹配准确的单词page\b 用于单词边界)
    • (?!-):如果我们在当前位置的右侧有-,则负前瞻失败

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多