Java正则表达式找到第一个字符不在字符范围内

时间:2015-05-11 07:18:39

标签: java regex

在我的SQL Server中有一个PATINDEX函数。例如:

patindex('%[^A-Z,^a-z,^0-9,^\,^_]%', SqlInstanceName)

这将返回第一个字符的string索引位置,该字符不在A-Z中,不在a-z中,不在0-9中,NOT =' \' (反斜杠)和NOT =' _' (下划线)。

我想在Java 1.6 / 1.7中使用Regex或使用任何内置的Java库方法执行相同的操作。

2 个答案:

答案 0 :(得分:3)

在Java中你可以这样做:

Pattern p = Pattern.compile("[^\\w\\\\]");
Matcher m = p.matcher(input); // input is your String 

if (m.find())
   System.out.println(m.start()); // start position of your match

答案 1 :(得分:0)

谢谢大家! 使用上面的提示我写了这个Java代码,它似乎对我有用:

// start code fragment
Pattern pattern = Pattern.compile("([a-zA-Z0-9_\\\\]*)");
Matcher matcher = pattern.matcher(inputString);
if (matcher.find()) 
{
    inputString = matcher.group(1);
}
// end code fragment

非常感谢!