例如,如果我有一个字符串"Sc_bookstore.PKG_book.SP_Harrypotter"
。
我如何分离架构,包和StoredProc?即,我想让他跟随输出:
Sc_bookstore
PKG_book
SP_Harrypotter
我将在多个StoredProc调用上使用此正则表达式,并且所有这些都遵循“Sc_”“PKG_”“SP _”的标准
提前致谢!
答案 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应用程序来测试正则表达式。