Java正则表达式查找不在字符范围内的第一个字符
在我的SQL Server中有一个Java正则表达式查找不在字符范围内的第一个字符,java,regex,Java,Regex,在我的SQL Server中有一个PATINDEX函数。例如: patindex('%[^A-Z,^a-z,^0-9,^\,^_]%', SqlInstanceName) 这将返回第一个字符的字符串索引位置,该字符不在A-Z、A-Z、0-9、NOT='\'(反斜杠)和NOT='\'(下划线) 我想在Java 1.6/1.7中使用Regex或任何内置Java库方法执行同样的操作。在Java中,您可以执行以下操作: Pattern p = Pattern.compile("[^\\w\\\\]")
PATINDEX
函数。例如:
patindex('%[^A-Z,^a-z,^0-9,^\,^_]%', SqlInstanceName)
这将返回第一个字符的字符串
索引位置,该字符不在A-Z、A-Z、0-9、NOT='\'(反斜杠)和NOT='\'(下划线)
我想在Java 1.6/1.7中使用Regex或任何内置Java库方法执行同样的操作。在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
谢谢大家!
使用上述技巧,我编写了这段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
非常感谢 移除你在那里的“s”<代码>[^A-Za-z0-9.]
\w
匹配任何单词字符[A-Za-z0-9.]
,+1。