正则表达式问题 - 排除某些字符

时间:2011-05-09 14:00:40

标签: java regex

如果我想在正则表达式中排除/ *我将如何编写它?

我试过了:

[^/[*]]
([^/][^*])

但无济于事......

5 个答案:

答案 0 :(得分:3)

您必须匹配not /,或/ followed by not *

([^/]|/[^*])+/?

答案 1 :(得分:2)

使用否定前瞻检查,如果输入包含/,则不会包含/后跟/*xy后面没有跟x(?!y) / new RegExp('^[^/]*$')/

  • 输入中不包含*new RegExp('^/(?!\\*)$')
  • 找不到任何* \\ * new RegExp('^([^/]|/(?!\\*))*$') (注意,{{1}}必须使用{{1}}进行转义,因为{{1}}是一个特殊的角色。

结合两个表达式:

{{1}}

答案 2 :(得分:0)

在Java中,下面的Pattern应该适合你:

Pattern pt = Pattern.compile("((?<!/)[*])");

这意味着匹配*之前没有/

测试代码

String str = "Hello /* World";
Pattern pt = Pattern.compile("((?<!/)[*])");
Matcher m = pt.matcher(str);
if (m.find()) {
    System.out.println("Matched1: " + m.group(0));
}
String str1 = "Hello * World";
m = pt.matcher(str1);
if (m.find()) {
    System.out.println("Matched2: " + m.group(0));
}

输出

Matched2: *

答案 3 :(得分:0)

难道你不能否认一场积极的比赛吗?因此内核只是“/ *”,但*需要通过反斜杠进行屏蔽,这需要屏蔽自身,并且模式可能跟随或先于某些事物,因此。*需要/\\*之前和之后:{ {1}}。

".*/\\*.*"

答案 4 :(得分:-1)

请参阅http://mindprod.com/jgloss/regex.html#EXCLUSION

e.g。 [^“]或[^ w-z]除了引用和除了wxyz之外的任何东西