【发布时间】:2009-11-10 09:54:12
【问题描述】:
我是 Java 正则表达式的新手。请帮助我。 考虑以下段落,
段落:
Name abc
sadghsagh
hsajdjah Name
ggggggggg
!!!
Name ggg
dfdfddfdf Name
!!!
Name hhhh
sahdgashdg Name
asjdhjasdh
sadasldkalskd
asdjhakjsdhja
!!!
我需要将以上段落拆分为以 Name 开头并以 !!! 结尾的文本块.这里我不想用!!!作为分割段落的唯一分隔符。我还需要在我的正则表达式中包含起始序列(名称)。
ie.,我的结果 api 应该看起来像 SplitAsBlocks("Paragraph","startswith Name","endswith !!!”)
如何实现这一点,请任何人帮助我......
现在我想要与 Brito 相同的输出......但是在这里我在“hsajdjah”之后添加了名称。这里将文本拆分为以下内容:
Name
ggggggggg
!!!
但我需要
Name abc
sadghsagh
hsajdjah Name
ggggggggg
!!!
也就是说,我必须匹配位于行首而不是中间的名称。
请给我建议...
Bart ...请参阅下面的输入案例以了解您的代码...
我需要使用带有参数 start => Name 和 end => 的 API 拆分以下内容! 但输出各不相同..我只有 3 个块以 Name 开头并以 ! . 我也附上了输出。
String myInput = "Name hhhhh class0"+ "\n"+
"HHHHHHHHHHHHHHHHHH"+ "\n"+
"!"+ "\n"+
"Name TTTTT TTTT"+ "\n"+
"GGGGGG UUUUU IIII"+ "\n"+
"!"+ "\n"+
"Name JJJJJ WWWW"+ "\n"+
"IIIIIIIIIIIIIIIIIIIII"+ "\n"+
"!"+ "\n"+
"RRRRRRRRRRR TTTTTTTT"+ "\n"+
"HHHHHH"+ "\n"+
"JJJJJ 1 Name class1"+ "\n"+
"LLLLL 5 Name class5"+ "\n"+
"!"+ "\n"+
"OOOOOO HHHH FFFFFF"+ "\n"+
"service 0 Name class12"+ "\n"+
"!"+ "\n"+
"JJJJJ YYYYYY 3/0"+ "\n"+
"KKKKKKK"+ "\n"+
"UUU UUU UUUUU"+ "\n"+
"QQQQQQQ"+ "\n"+
"!";
String[] tokens = tokenize(myInput, "Name", "!");
int n = 0;
for(String t : tokens) {
System.out.println("---------------------------\n"+(++n)+"\n"+t);
}
输出:
---------------------------
1
Name hhhhh class0
HHHHHHHHHHHHHHHHHH
!
---------------------------
2
Name TTTTT TTTT
GGGGGG UUUUU IIII
!
---------------------------
3
Name JJJJJ WWWW
IIIIIIIIIIIIIIIIIIIII
!
---------------------------
4
Name class1
LLLLL 5 Name class5
!
---------------------------
5
Name class12
!
在这里我只需要在行首而不是中间的名称... 如何为此添加正则表达式...
【问题讨论】:
-
代码块请使用四个空格缩进。
-
???
Name abc sadghsagh hsajdjah Name ggggggggg !!!正是您尝试我的建议时所得到的。你有没有尝试过我的建议?我在演示中调整了输入,当你运行它时,你会看到它产生了你刚才描述的输出。 -
是的,巴特我试过你的建议,它工作正常,但在特定情况下失败..我在上面的代码中添加了特定的输入情况..请看...
-
请注意邮件格式。
-
不客气
unknown。你明白尽可能清楚地表达自己是多么重要吗?在此处(或公共论坛上的任何地方)提交下一个问题之前,请校对您的问题,看看您是否可以预览您的消息发布后将如何结束:格式也很重要。祝你好运。