Java Reg表达式-在匹配字符串之间拆分字符串
我试图从一个长字符串中获取一个字符串数组。数组由两个其他字符串之间匹配的字符串组成(Java Reg表达式-在匹配字符串之间拆分字符串,java,regex,Java,Regex,我试图从一个长字符串中获取一个字符串数组。数组由两个其他字符串之间匹配的字符串组成(?在我的例子中是?)。我尝试了下面的代码,但没有得到预期的结果 Pattern pattern = Pattern.compile("\\?\\?\\?(.*?)\\?\\?\\?"); String[] arrayOfKeys = pattern.split("???label.missing???sdfjkhsjkdf sjkdghfjksdg ???some.label???sdjkhsdj");
?
在我的例子中是?
)。我尝试了下面的代码,但没有得到预期的结果
Pattern pattern = Pattern.compile("\\?\\?\\?(.*?)\\?\\?\\?");
String[] arrayOfKeys = pattern.split("???label.missing???sdfjkhsjkdf sjkdghfjksdg ???some.label???sdjkhsdj");
for (String key : arrayOfKeys) {
System.out.println(key);
}
我的预期结果是:
["label.missing", "some.label"]
用于获取输入字符串的模式,然后用于查找所需的模式Matcher.find()
将查找与提供的模式匹配的子字符串
Pattern pattern = Pattern.compile("\\?{3}(.*?)\\?{3}");
Matcher m = pattern.matcher(inputString);
while (m.find()) {
System.out.println(m.group(1));
}
将使用您的模式作为分隔符来分割字符串(然后将丢弃分隔符部分),这显然不是本例中所需的。您的正则表达式设计为与要提取的文本匹配
我将模式缩短为使用量词精确重复3次{3}
,而不是写入\?
3次。用于获取输入字符串的a,然后使用查找所需的模式Matcher.find()
将查找与提供的模式匹配的子字符串
Pattern pattern = Pattern.compile("\\?{3}(.*?)\\?{3}");
Matcher m = pattern.matcher(inputString);
while (m.find()) {
System.out.println(m.group(1));
}
将使用您的模式作为分隔符来分割字符串(然后将丢弃分隔符部分),这显然不是本例中所需的。您的正则表达式设计为与要提取的文本匹配
我将模式缩短为使用量词精确重复3次,而不是写3次。我将创建一个字符串输入,其中包含您试图拆分的内容,并对其调用input.split()
请在此处尝试:
我将创建一个包含您试图拆分的内容的字符串输入,并对其调用input.split()
请在此处尝试:
Pattern=Pattern.compile(“\\?{3}(+?)\\?{3}”);
Matcher Matcher=pattern.Matcher(“???label.missing???sdfjkhsjkdf sjkdghfjksdg???some.label???sdjkhsdj”);
列表列表=新的ArrayList();
while(matcher.find()){
列表添加(匹配器组(1));
}
for(字符串键:aList){
系统输出打印项次(键);
}
Pattern=Pattern.compile(“\\?{3}(+?)\\?{3}”);
Matcher Matcher=pattern.Matcher(“???label.missing???sdfjkhsjkdf sjkdghfjksdg???some.label???sdjkhsdj”);
列表列表=新的ArrayList();
while(matcher.find()){
列表添加(匹配器组(1));
}
for(字符串键:aList){
系统输出打印项次(键);
}
您如何从所需物品中识别垃圾物品?哦,只有标签才是所需的?你可以每隔一件就拿一件?你如何从想要的物品中识别出垃圾物品?哦,只有标签是需要的?你可以把其他的都拿走吗?
Pattern pattern = Pattern.compile("\\?{3}(.+?)\\?{3}");
Matcher matcher= pattern.matcher("???label.missing???sdfjkhsjkdf sjkdghfjksdg ???some.label???sdjkhsdj");
List<String> aList = new ArrayList<String>();
while(matcher.find()) {
aList.add(matcher.group(1));
}
for (String key : aList) {
System.out.println(key);
}