2015-03-19 29 views
2

我不得不更換每更換支架只有當他們

. (some string) 

. \n==some string==\n 

這不工作,因爲我需要保持(字符串)即ISN的每次出現「T後點:

str = str.replaceAll("\\(", "\n=="); 
str = str.replaceAll("\\) ", "==\n"); 

我怎麼能轉換(some string)\n==some string==\n,只有當它的前面一個句號?

+0

是什麼'alny'是什麼意思? – 2015-03-19 11:49:30

+0

這裏的括號在哪裏?我只看到parens – fge 2015-03-19 11:50:20

+1

@fge請參閱https://en.wikipedia.org/wiki/Bracket,尤指。第二和第三段。在英式英語中,通常將括號括起來作爲括號。 – Biffen 2015-03-19 11:55:25

回答

1

您不需要有兩個replaceAll函數。只需要一個使用基於捕獲組的正則表達式的replaceAll函數就足夠了。

str.replaceAll("\\. \\(([^)]*)\\)", ". \n==$1==\n"); 

DEMO

+0

Upvote不是使用'。*?'而是'[^)] *'而不是!然而,使用'Pattern'和'Matcher'甚至更好(呃,在評論中不允許+1是一種徹頭徹尾的痛苦) – fge 2015-03-19 11:51:36

相關問題