我正在替换字符串的一部分,如下所示
biblebook.replaceAll("[{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\":","[");
但我的日志显示以下错误
09-25 16:33:47.421: W/System.err(5116): java.util.regex.PatternSyntaxException: Missing closing bracket in character class near index 46:
09-25 16:33:47.421: W/System.err(5116): [{"-bnumber":"1","-bname":"Genesis","CHAPTER":
09-25 16:33:47.421: W/System.err(5116): ^
09-25 16:33:47.421: W/System.err(5116): at java.util.regex.Pattern.compileImpl(Native Method)
09-25 16:33:47.421: W/System.err(5116): at java.util.regex.Pattern.compile(Pattern.java:400)
09-25 16:33:47.429: W/System.err(5116): at java.util.regex.Pattern.<init>(Pattern.java:383)
09-25 16:33:47.429: W/System.err(5116): at java.util.regex.Pattern.compile(Pattern.java:374)
09-25 16:33:47.429: W/System.err(5116): at java.lang.String.replaceAll(String.java:1784)
09-25 16:33:47.429: W/System.err(5116): at .Index$loadingTask.doInBackground(Index.java:383)
任何想法?
更新这是我的字符串
的一部分[{ “ - B-号码”: “1”, “ - BNAME”: “创世纪”, “章”:[{ “ - cnumber”: “1”, “VERS”:[{ “ - vnumber”:” 1" , “#文”:“金 开始,Dieucréalescieux et la terre。“},{” - vnumber“:”2“,”#text“:”Laterreétaitinformeet vide:il y avaitdesténèbresàlasurface de l'abîme,et l'esprit de Dieu se mouvait au-dessus des eaux。“},{” - vnumber“:”3“,”#text“:”Dieu dit:Que lalumièresoit! Etlalumièreuf。“},{” - vnumber“:”4“,”#text“:”Dieu vit quelalumièreétaitbonne; etDieuséparalalumièred'avecles ténèbres。“},{” - vnumber“:”5“,”#text“:”Dieu appelalalumièrejour,et il appelalesténèbresnuit。 Ainsi,il y eut un soir,et il y eut un matin:ce fut le premier jour。“},{” - vnumber“:”6“,”#text“:”Dieu dit: Qu'il y aituneétenduentreles eaux,etqu'elelsépareleseaux d'avec les eaux。“},{” - vnumber“:”7“,”#text“:”Et Dieu fit l'étendue,et ilsséparaleseaux qui sont au-dessous de l'étendued'aveveles eaux qui sont au-dessusdel'étendue。 Et cela fut ainsi。“},{” - vnumber“:”8“,”#text“:”Dieu appela l'étendueciel。 AINSI, il y eut un soir,et il y eut un matin:ce fut le second jour。“},{” - vnumber“:”9“,”#text“:”Dieu dit:Que les eaux qui sont au-dessous du ciel se rassemblent en un seul lieu,et que le sec paraisse。 Et cela fut ainsi。“},{” - vnumber“:”10“,”#text“:”Dieu appela le sec terre,et il appela l'amas des eaux mers。 Dieu vit que cela étaitbon。“},{” - vnumber“:”11“,”#text“:”Puis Dieu dit:Que la terre 生产de la verdure,de l'herbe portant de la semence,des arbres 水果商donnant du fruit selonleurespèceetayant en eux leur semence sur la terre。 Et cela fut ainsi。“},{” - vnumber“:”12“,”#text“:”La terre produisit de la verdure, de l'herbe portant de la semence selonsonespèce,et des arbres donnant du fruit et ayant en eux leur semence selonleurespèce。妙 vit quecelaétaitbon。“},{” - vnumber“:”13“,”#text“:”Ainsi,il y eut un soir,et il y eut un matin:ce futletroisième jour。“},{” - vnumber“:”14“,”#text“:”Dieu dit:Qu'il y ait des Luminaires dans l'étendueduciel,pouréparerlejour d'avec la nuit; que ce so signes pour marquerlesépoques,les jours et les années;“},{” - vnumber“:”15“,”#text“:”et qu'ils servent de Luminaires dans l'étendueduciel,pouréclairerlaterre。 Et cela fut ainsi。“},{” - vnumber“:”16“,”#text“:”Dieu fit les deux grands 灯具,le plus grand luminairepourprésideraujour,et le plus petit luminairepourprésideràlanuit; il fit aussi les étoiles。“},{” - vnumber“:”17“,”#text“:”Dieulesplaçadansl'étenduedu ciel,pouréclaireratterre,“},{” - vnumber“:”18“,”#text“:”倒 présideraujouretàlanuit,etpoursséparerlalumièred'avecles ténèbres。 Dieu vit quecelaétait bon。“},{” - vnumber“:”19“,”#text“:”Ainsi,il y eut un soir,et il y eut un matin:ce futlequatrièmejour。“},{” - vnumber“:”20“,”#text“:”Dieu dit:Que les eaux produisent en abondance des animaux vivants,et que des oiseaux volent sur la terre vers l'étenduedu ciel。“},{” - vnumber“:”21“,”#text“:”Dieucréalesgrands poissons et tous les animaux vivants qui se meuvent,et que les eaux produisirent en abondance selonleurespèce; ilcréaaussitoutoiseauailéselon 儿子埃斯佩斯。 Dieu vit quecelaétait bon。“},{” - vnumber“:”22“,”#text“:”Dieulesbénit,en disant:Soyez féconds,multipliez,et remplissez les eaux des mers; et que les oiseaux multiplient sur la terre。“},{” - vnumber“:”23“,”#text“:”Ainsi, il y eut un soir,et il y eut un matin:ce futlecinquième jour。“},{” - vnumber“:”24“,”#text“:”Dieu dit:Que la terre produise des animaux vivants selonleurespèce,dubétail,des reptiles et des animaux terrestres,selonleurespèce。 Et cela fut ainsi。“},{” - vnumber“:”25“,”#text“:”Dieu fit les animaux de la terre selonleurespèce,lebétailselonsonespèce,et tous les reptiles de la terre selonleurespèce。 Dieu vit quecelaétait bon。“},{” - vnumber“:”26“,”#text“:”Puis Dieu dit:Faisons l'hommeà notre image,selon notre ressemblance,et qu'il domine sur les poissons de la mer,sur les oiseaux du ciel,surlebétail,sur toute
答案 0 :(得分:6)
你必须使用双反斜杠([
)来转义方括号(]
和\\
),因为它们在regexp中有一个函数...(编辑:当然大括号{
}
)
biblebook.replaceAll("\\[\\{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\":","\\[");
另外:我发现使用在线正则表达式检查器like this可以帮助我更快地完成工作
答案 1 :(得分:2)
如果您想要替换那个确切的字符串而不想使用正则表达式,请使用biblebook.replace()
代替biblebook.replaceAll()
。
答案 2 :(得分:1)
如果要将[
作为正则表达式的一部分包含在内,则需要关闭括号。
[{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\]
但是如果括号[
是字符串的一部分,那么你需要以
\\[{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\