Sql 或两个正则表达式之间的符号
我需要从Sql 或两个正则表达式之间的符号,sql,regex,select,Sql,Regex,Select,我需要从和中提取之间的单词,其中或 为了这个我有 Pattern p = Pattern.compile("(?<=\\bFROM\\b).*?(?=\\bWHERE\\b)"); 使用上述模式,它将返回为 emp, dept 例2: input = "select * from emp, dept" 根据以上输入,我写了如下内容: Pattern p = Pattern.compile("(?<=\\bFROM\\b).*?(?=\\bWHERE|;\\b)"); Pa
和中提取之间的单词,其中或代码>
为了这个我有
Pattern p = Pattern.compile("(?<=\\bFROM\\b).*?(?=\\bWHERE\\b)");
使用上述模式,它将返回为
emp, dept
例2:
input = "select * from emp, dept"
根据以上输入,我写了如下内容:
Pattern p = Pattern.compile("(?<=\\bFROM\\b).*?(?=\\bWHERE|;\\b)");
Pattern p=Pattern.compile((?修改表达式以识别WHERE子句中的所有字符,并将其设置为可选
(?<=\bFROM\b).*?(\s*WHERE\s.*)?$
<代码> >(您使用ReXEPS来解析HTML吗?请考虑:<代码>从Table中选择Culnnx,其中1=1 < /COD> > Bart。我认为<代码> \b>代码>用于此目的。因此没有问题。@蓝,啊,是的,许多ReGEX实现不从我的列名中看到<代码> < <代码>和<代码> f>代码> > <代码> \b>代码> >但这不是我的观点:我的观点是(或)是这样一个简单的测试在某些SQL语句中很可能失败。考虑这个代码:<代码>从“X”中选择“Fo”,从“y”中的1=1</代码>如果你有“代码>”,从EMP选择“*”,“按ID顺序排列”< /C> >它将匹配一个错误的子串。
(?<=\bFROM\b).*?(\s*WHERE\s.*)?$