1

こんにちは、私は文字列を持っており、正規表現に一致する部分文字列を抽出したいと考えています。現在持っているコードは、部分文字列を削除します。それを保持する必要がある唯一の部分にしたいと考えています。

私が持っているもの、これはそれを削除します、私はそれを保持したいです:

String ticketReference = "You have been assigned to the following Support Ticket: ST-00003 bla bla bla";

ticketReference =  ticketReference.replaceAll("'((ST-)[0-9]{5})", " ");

希望する出力:「ST-00003」

事前にサンクス

4

2 に答える 2

3

キャプチャ グループを使用してこれを行うことができます。これらは$nJava で示されます。

String ticketReference = "You have been assigned to the following Support Ticket: ST-00003 bla bla bla";
ticketReference =  ticketReference.replaceAll("^.*(ST-[0-9]{5}).*$", "$1");
于 2012-07-20T08:02:14.410 に答える
0

replaceAllソリューションにはエラー処理がないため、一致が見つからない場合、文字列は変更されません。


Patternこれを使用してそれを行う適切な方法は次のMatcherとおりです(そして私の考えでははるかに簡単です):

String stringToDecode = 
     "You have been assigned to the following Support Ticket: ST-00003 bla bla";

Matcher m = Pattern.compile("ST-[0-9]{5}").matcher(stringToDecode);

if (!m.find())
    throw new CouldNotFindTicketException(stringToDecode);

String ticketReference = m.group();
//...
于 2012-07-20T09:23:29.153 に答える