例如,如果我有一個字符串"Sc_bookstore.PKG_book.SP_Harrypotter"
。Java正則表達式用'。'分隔字符串。
我該如何區分架構,包和StoredProc?即,我想他以下的輸出:
Sc_bookstore
PKG_book
SP_Harrypotter
我將使用多個StoredProc調用這個表達式,和他們都遵循「SC_」「PKG_」「SP_」的標準
提前致謝!
例如,如果我有一個字符串"Sc_bookstore.PKG_book.SP_Harrypotter"
。Java正則表達式用'。'分隔字符串。
我該如何區分架構,包和StoredProc?即,我想他以下的輸出:
Sc_bookstore
PKG_book
SP_Harrypotter
我將使用多個StoredProc調用這個表達式,和他們都遵循「SC_」「PKG_」「SP_」的標準
提前致謝!
如果您真正想/需要正則表達式,在行:
^(Sc_\w+)\.(PKG_\w+)\.(SP_\w+)$
會允許你捕獲組值
對於輸入Sc_bookstore.PKG_book.SP_Harrypotter
:
Group 1: "Sc_bookstore"
Group 2: "PKG_book"
Group 3: "SP_Harrypotter"
但是,你的情況,只是通過.
分割字符串會滿足您的需求很好
嗨!這工作完美!謝謝! :) – user1602123 2012-08-17 00:58:52
如果需要正則表達式分隔符(與String.split
一樣),則使用"\\."
或"[.]"
。
A .
in Java regular expression表示「匹配任何字符」(大致取決於選項);上述兩種形式逃避/防止這種含義,因此它符合文字時期。
感謝您的幫助:) – user1602123 2012-08-17 01:01:55
你需要一個分隔符來分割字符串中的任何時候,你應該考慮使用String 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"
這就是你想要的。 – endy 2012-08-16 03:22:37
謝謝。這也工作。但我不得不使用完整的正則表達式來確保我只能得到一次Sc模式等。 – user1602123 2012-08-17 01:01:40
然後,也許你應該在你的初始文章中提到的要求... – 2012-08-17 01:09:40
假設單個字符串始終只包含一個這樣的記錄,使用此:
^Sc_([^.]+)\.PKG_([^.]+)\.SP_([^$]+)$
...注意,這將刪除字符串,只有返回的SC_,PKG_和SP_零件「內容」。
爲了測試目的,我創建了一個簡單的JavaRegexTester應用程序來測試正則表達式。
我其實需要Sc_等,但謝謝。 – user1602123 2012-08-17 01:00:02
不要忘了接受的答案時,你就大功告成了:) – everton 2012-08-16 03:33:14