2017-08-04 215 views
-2

在我的搜索過程中,我希望得到關於這個正則表達式的建議。正則表達式轉換

從這個測試的表達式:"reporter": "JONES Jack"

我想獲得:"reporter":{"name":"jack.jones"}

我嘗試用這個表達式:(\"reporter\":\")+(([a-zA-Z]+)[[:space:]]([a-zA-Z]+))

你能建議我的事情,請與Java的的replaceAll?

嗨,

我終於找到了答案:

來形容,第一個表達式的正則表達式是:(\"reporter\"\:\")+([([a-zA-Z]+) (([a-zA-Z]+))\"

對於第二個表達式,正則表達式爲:(\"reporter\"\:)+({\"name\":\"[a-zA-Z]+.[a-zA-Z]+\"})

在Java與replaceAll我們有:

output_row.json = output_row.json.replaceAll("(\"reporter\":\")+(([a-zA-Z]+))+\\u0020+(([a-zA-Z]+))\"","\"reporter\":{\"name\":\"$4.$2\"}"); 

啤酒

+0

它看起來像json格式。使用json解析器。不是正則表達式 – Jens

回答

1

假設總是正是格式,並沒有任何更多的信息:

正則表達式:"reporter": "(\w+) (\w+)"

替換爲:"reporter":{"name":"$2.$1"}

然後,我不認爲你可以轉換到小寫在Java正則表達式所以也許你只是做一個.toLowerCase()