Java 我想知道如何使用正则表达式提取句子中的单词
我在java中使用正则表达式 我想提取我想要的单词 示例)Java 我想知道如何使用正则表达式提取句子中的单词,java,regex,string,Java,Regex,String,我在java中使用正则表达式 我想提取我想要的单词 示例)String-exam=“…aa.aaa..bb..” 我想提取“.aa.aaa..”而不是“.aa.aaa..bb..” 所以我试着用这样的正则表达式“(\\.\\.\.[a-z])([a-z]\.\.\.\” 但是,程序返回语句“.aa.aaa..bb..” 我该怎么办 ================================================================== 这是完整的来源 public c
String-exam=“…aa.aaa..bb..”
我想提取“.aa.aaa..”
而不是“.aa.aaa..bb..”
所以我试着用这样的正则表达式“(\\.\\.\.[a-z])([a-z]\.\.\.\”
但是,程序返回语句“.aa.aaa..bb..”
我该怎么办
==================================================================
这是完整的来源
public class test {
public static void main(String ar[]) throws java.io.IOException {
String regex = "(\\.\\.[a-zA-Z0-9])[^\\.]*\\.[^\\.]+{2,}.*([a-z]{2,}\\.\\.)";
String useStr = "..aa.aaa..bb..";
Pattern pattern = Pattern.compile(regex);
Matcher match = pattern.matcher(useStr);
while (match.find()) {
String a = useStr.substring(match.start(), match.end());
System.out.println(a);
}
}
}
我在括号内放置了<代码> [^ \\] *[[^ \] +{ 2,}.*<代码>中间,并将其捕获到组2中,然后将第一组和第二组连接到字符串A. < /P> 我不确定这是否是您想要的确切模式,但它是正确的字符串
public class test {
public static void main(String ar[]) throws java.io.IOException {
String regex = "(\\.\\.[a-zA-Z0-9])([^\\.]*\\.[^\\.]+{2,}.*)([a-z]{2,}\\.\\.)";
String useStr = "..aa.aaa..bb..";
Pattern pattern = Pattern.compile(regex);
Matcher match = pattern.matcher(useStr);
while (match.find()) {
//String a = useStr.substring(match.start(), match.end());
String a = match.group(1) + match.group(2);
System.out.println(a);
}
}
}
这将
a
设置为,并随后打印:.aa.aaa..
下面是我在评论中提到的两个正则表达式的解决方案。firstTwoDots
匹配由的前两次出现所划分的子字符串。
,而dotsAndAs
匹配由
和a
组成的所有内容:
public static void main(String ar[]) {
String firstTwoDots = "([.]{2})(.*?)([.]{2}).*";
String dotsAndAs = "([.a]*).*";
String useStr = "..aa.aaa..bb..";
Matcher matcher = Pattern.compile(firstTwoDots).matcher(useStr);
if (matcher.matches()) System.out.println(matcher.group(1) + matcher.group(2) + matcher.group(3));
matcher = Pattern.compile(dotsAndAs).matcher(useStr);
if (matcher.matches()) System.out.println(matcher.group(1));
}
您的问题中没有准确解释/定义提取内容的规则。因此我们不得不猜测。您是在搜索由前两个
。
划分的子字符串,还是在只包含a
和
的子字符串中?我还没有阅读一个正则表达式问题,它实际上以明确的术语定义了要搜索的内容。也许这就是所有这些问题的根源——提出问题的人并不理解这个事实。我建议你首先阅读。