正则表达式:想要消除破折号开头的情况
Regex : Want to eliminate dash start case
我有以下条件。
- 它将搜索字词 "page"
- 它捕获字符串页面 - 带引号
- 它捕获变量赋值,如 -
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行和最后一行应该不匹配)
我该如何解决?谢谢
您可以将此正则表达式与前瞻和后视断言一起使用:
(?<!-)\bpage\b(?!-)
正则表达式详细信息:
(?<!-)
:如果我们在当前位置 的左侧有-
,则否定后视使匹配失败
\bpage\b
: 匹配精确词page
(\b
用于词边界)
(?!-)
:如果我们在当前位置 的右侧有-
,则否定前瞻使匹配失败
我有以下条件。
- 它将搜索字词 "page"
- 它捕获字符串页面 - 带引号
- 它捕获变量赋值,如 -
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行和最后一行应该不匹配)
我该如何解决?谢谢
您可以将此正则表达式与前瞻和后视断言一起使用:
(?<!-)\bpage\b(?!-)
正则表达式详细信息:
(?<!-)
:如果我们在当前位置 的左侧有\bpage\b
: 匹配精确词page
(\b
用于词边界)(?!-)
:如果我们在当前位置 的右侧有
-
,则否定后视使匹配失败
-
,则否定前瞻使匹配失败