Java正则表达式用'。'来划分字符串。

时间:2012-08-16 03:07:51

标签: java regex

例如,如果我有一个字符串"Sc_bookstore.PKG_book.SP_Harrypotter"

我如何分离架构,包和StoredProc?即,我想让他跟随输出:

Sc_bookstore
PKG_book
SP_Harrypotter

我将在多个StoredProc调用上使用此正则表达式,并且所有这些都遵循“Sc_”“PKG_”“SP _”的标准

提前致谢!

5 个答案:

答案 0 :(得分:5)

如果需要正则表达式拆分分隔符,则使用"\\.""[.]"。(与String.split一样)。

Java regular expression中的.表示“匹配任何字符”(粗略地,取决于选项);上面的两个表单是逃避/阻止这个含义所以它匹配一个文字句号。

答案 1 :(得分:2)

每当你需要用分隔符划分字符串时,你应该考虑使用字符串split方法:

String s = "Sc_bookstore.PKG_book.SP_Harrypotter";
String parts[] = s.split("\\.");
parts[0]; // holds "Sc_bookstore"
parts[1]; // holds "PKG_book"
parts[2]; // holds "SP_Harrypotter"

答案 2 :(得分:0)

你可以使用split(没有正则表达式)

String[] values;
values = str.split("\\.");

答案 3 :(得分:0)

如果你真的想要/需要正则表达式,那就是:

^(Sc_\w+)\.(PKG_\w+)\.(SP_\w+)$

允许您捕获组值

输入Sc_bookstore.PKG_book.SP_Harrypotter

Group 1: "Sc_bookstore"
Group 2: "PKG_book"
Group 3: "SP_Harrypotter"

但是,在您的情况下,只需按.分割字符串就可以很好地满足您的需求

答案 4 :(得分:0)

假设一个字符串总是只包含一个这样的记录,请使用:

^Sc_([^.]+)\.PKG_([^.]+)\.SP_([^$]+)$

...请注意,这将删除字符串的Sc_,PKG_和SP_部分,并仅返回“content”。

出于测试目的,我创建了一个简单的JavaRegexTester应用程序来测试正则表达式。