0

Javaでの正規表現解析は初めてです。レコードを含む文字列を解析したい。しかし、そのレコードの選択された部分のみを選択したいです。

\"6\":\"Services Ops\",\"practice_name\":\"Services Ops\",\"7\":\"Management\",

このために、正規表現を次のように記述しました

(^\\\"6\\\":\\\"[A-Za-z \s]*)

上記の式は次のように結果を返します:\"6\":\"Services Ops\

私だけが欲しいService Ops

また、\"5"\:\"xxx"\ のように複数のレコードがあるため、式のみを記述するとService Ops、他のフィールドからのエントリも式の結果に含まれます。

一部で始まる文字列を選択する方法はありますpatternが、そのパターンを除外できます。

上記の例のように文字列で始まりますが、この部分を除外して結果として\"6\":\"のみ取得できます。Service Ops

ありがとうございました。

4

1 に答える 1

3

チェックのみを実行するが一致しないルックアラウンドを使用できます。

lookahead (?=...)
lookbehind(?<=...)

例:

(?<=\\\"6\\\":\\\")[^\"]++(?=\")

別の方法は、キャプチャ グループを使用することです(...)

\\\"6\\\":\\\"([^\"]++)\"

その後、グループのコンテンツのみを抽出できます。例:

Pattern p = Pattern.compile("\\\"6\\\":\\\"([^\"]++)\"");
Matcher m = p.matcher(yourString);
if (m.matches()) {
    System.out.println(m.group(1));
}
于 2013-07-30T03:29:47.513 に答える