1.数据库里面有一个表里的字段数据是这样的字段 
  keyword 数据是
   1> "山东华特磁电|山东临朐东城街道吴家庙村2202号|吴海涛|ax7dmo|海福尔 防盗窗|国家免检产品"
  2> "中国坯布网|晋州市东里庄乡南寺|纪军杰|ax5fpd|欢迎访问晋州市汇祥纺织有限公司WAP网站|公平的价格卓越的品质诚信为本"
  现在对我有用的信息 只有1>山东临朐东城街道吴家庙村2202号  2>晋州市东里庄乡南寺  现在预想用sql查询的时候用正则查询出来:
  这只是我写sql的例子指定不正确,现在请朋友帮忙 帮我改到一下sql怎么能查询出来。
  select keyword FROM Info where keyword REGEXP '[[:<:]]alnum[[:>:]]+';  另外我还想用java去是实现一下,但是数据怎么感觉不正确。而且我想得出来的结果只要“崂山区高科园”顺便帮我用java也实现。谢谢
   
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test13 {
private static final String  INPUT= "张立彬武岳红|崂山区高科园|张立彬 武岳红|张立彬 武岳红|WAP网站|";
private static final String  rex= "|";  public static void main(String[] args) {
Pattern p = Pattern.compile(rex);
String[] items = p.split(INPUT);
for (String string : items) {
System.out.println(string);

}
  }
}
   

解决方案 »

  1.   

    SQL中也可以用正则表达式?我从来没用过,学习一下。
      

  2.   

    至于下面java那部分压根没看懂你要干啥
      

  3.   

    下边的java部分 我想  1.根据split("|")方法分割出字符串。
    然后在取 字符串数组为第二个的。就是要取数据。
      

  4.   

    "山东华特磁电|山东临朐东城街道吴家庙村2202号|吴海涛|ax7dmo|海福尔 防盗窗|国家免检产品"这条数据  我取的是:  山东临朐东城街道吴家庙村2202号 看到规律了吗? 取的是第一个"|~~~|"之间的这一块数据。
      

  5.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test1 {  
        
        public static void main(String[] args) {           
            final String input = "张立彬武岳红|崂山区高科园|张立彬 武岳红|张立彬 武岳红|WAP网站|";
            final String regex = "^[^|]*\\|([^|]*)";
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(input);
            while(matcher.find()) {
                System.out.println(matcher.group(1));
            }
        }
    }
      

  6.   

    如果每次都是取第二个的话。那split出来后取第二个元素不就行了吗
      

  7.   

    sql 这个正则 不能实现吗?
      

  8.   

    可以吧数据取出来 然后在action里面用上边的正则去 割取。只能这样。
      

  9.   

    我现在也想知道咋能从SQL中得到正则,不过据我测试楼主的REGEXP不是标准SQL!
      

  10.   

    从数据库取出数据直接split,得到数组,取想要的的值 不就ok了
      

  11.   

        如果字符串中有*
    想根据*分割
    如:String str = "1*100";
    想要得到的结果为1  100
    用str.split("*");程序会报错
    用str.split("/*");得到的结果不行只能用分割
    不能用截取