使用Java的正则表达式[重复]

Posted

技术标签:

【中文标题】使用Java的正则表达式[重复]【英文标题】:REgular Expression using Java [duplicate] 【发布时间】:2014-05-13 17:52:53 【问题描述】:

我正在使用正则表达式来中断字符串,我正在尝试中断字符串,但在正则表达式中我缺少一些格式。谁能告诉我我哪里出错了。

String betweenstring="['Sheet 1$'].[DEPTNO] AS [DEPTNO]";
System.out.println("betweenstring: "+betweenstring);
Pattern pattern = Pattern.compile("\\w+[.]\\w+");
Matcher matchers=pattern.matcher(betweenstring);    
while(matchers.find())
       
    String filtereddata=matchers.group(0);          
    System.out.println("filtereddata: "+filtereddata);

我需要这样打破:

['Sheet 1$']
[DEPTNO] AS [DEPTNO]

【问题讨论】:

定义“断线”是什么意思 我已更新请检查一次 【参考方案1】:

鉴于您的具体输入,此正则表达式有效。

([\w\[\]' $]+)\.([\w\[\]' $]+)

捕获组 1 在句点之前,捕获组 2 之后。为 Java 字符串转义:

Pattern pattern = Pattern.compile("([\\w\\[\\]' $]+(\\.*[\\w\\[\\]' $]+)");

但是,如果这是您想要实现的目标,那么在文字点上拆分字符串会容易得多:

String[] pieces = between.split("\\.");
System.out.println(pieces[0]);    
System.out.println(pieces[1]);

输出:

['Sheet 1$']
[DEPTNO] AS [DEPTNO]

【讨论】:

以上是关于使用Java的正则表达式[重复]的主要内容,如果未能解决你的问题,请参考以下文章

java正则表达式使用

用java 正则表达式 提取IP地址

PatternSyntaxException:在 Java 中使用正则表达式时出现非法重复

Java如何在正则表达式中匹配重复单词?

Java正则表达式忽略/注释掉正则表达式的一部分[重复]

无法使用 Java 正则表达式匹配字符串的最后部分 [重复]