Java 提取并拆分字符串以创建具有唯一子字符串的新字符串
虽然问题的标题不够清楚,但我的疑问是: 我有一个输入字符串:Java 提取并拆分字符串以创建具有唯一子字符串的新字符串,java,string,Java,String,虽然问题的标题不够清楚,但我的疑问是: 我有一个输入字符串: "this is text <<PATTERN>>some text1 <</PATTERN>><<PATTERN>>some text2 <</PATTERN>><<PATTERN>>some text3 <</PATTERN>> end text" “这是文本一些文本1一些文本2一些文本
"this is text <<PATTERN>>some text1 <</PATTERN>><<PATTERN>>some text2 <</PATTERN>><<PATTERN>>some text3 <</PATTERN>> end text"
“这是文本一些文本1一些文本2一些文本3结束文本”
我想按如下方式显示输出(或新字符串变量):
String 1= this is text <<PATTERN>>some text1 <</PATTERN>> end text
String 2= this is text <<PATTERN>>some text2 <</PATTERN>> end text
String 3= this is text <<PATTERN>>some text3 <</PATTERN>> end text
String n= this is text <<PATTERN>>some textn <</PATTERN>> end text
String 1=这是一些文本1结束文本
字符串2=这是一些文本2结束文本
字符串3=这是一些文本3结束文本
String n=这是一些文本n结束文本
基本上我希望多个字符串有一个出现
<<PATTERN>>some textn <</PATTERN>>.
一些文本。
可以多次出现…
,下一组…
紧跟在前一组之后
如何使用JAVA实现?试试这个
String str = "this is text1<<PATTERN>>some text1 <</PATTERN>><<PATTERN>>some text2 <</PATTERN>><<PATTERN>>some text3 <</PATTERN>> end text";
Pattern r = Pattern.compile("(((?!<<PATTERN>>).)*)(<<PATTERN>>.*<</PATTERN>>)(.*)");
Matcher m = r.matcher(str);
String begin = "";
String end = "";
String data = "";
if(m.find()){
begin = m.group(1);
end = m.group(4);
data = m.group(3);
//Pattern inner = Pattern.compile("(<<PATTERN>>((?!<<PATTERN>>).)*<</PATTERN>>)");
Pattern inner = Pattern.compile("(<<[A-Z]{7}>>((?!<<[A-Z]{7}>>).)*<</[A-Z]{7}>>)");
Matcher mInner = inner.matcher(data);
while(mInner.find()){
System.out.println(begin + mInner.group(1) + end);
}
}
else{
System.out.println("nothing");
}
String str=“这是text1some text1 some text2 some text3 end text”;
Pattern r=Pattern.compile((((?!))*)(.*)(.*)(.*);
匹配器m=r.Matcher(str);
字符串begin=“”;
字符串结束=”;
字符串数据=”;
if(m.find()){
开始=m组(1);
结束=m组(4);
数据=m组(3);
//模式内部=模式.compile(((?!))*)”;
模式内部=模式.compile(((?!))*)”;
Matcher mInner=internal.Matcher(数据);
while(mInner.find()){
System.out.println(begin+mInner.group(1)+end);
}
}
否则{
System.out.println(“无”);
}
我不明白你的问题..使用正则表达式。就是这样。@marounnaroun最后一行,从开始,基本上解释了他想要实现的目标。@kon你能分享代码吗?如何实现这一目标?@AruniMishra绝对不能。您需要自己尝试,然后回到这里,在上下文中询问您自己编写的代码的任何问题。它工作得非常好,为了使它更通用,我在Pattern.compile()中给出了Pattern.DOTALL;虽然我不完全理解这里的逻辑,但请你再详细解释一下好吗?解释:我正在使用正则表达式分组将str字符串划分为树部分:开始、数据和结束,我正在使用第一个发现。然后,第二个正则表达式根据模式遍历数据。您可以在此处找到有关正则表达式分组的详细信息和说明: