java 查找和替换括号中的日文文本?[重复]

3wabscal  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(211)

此问题在此处已有答案

Pattern to extract text between parenthesis(4个答案)
2天前关闭。
我正在尝试查找并替换几行日语文本之间的所有文本,类似于:

雨[あめ]も 降[ふ]るし 強[つよ]い 風[かぜ]が 吹[ふ]くし、ひどい 天気[てんき]ですね。
It rains and strong wind blows, the weather is rough.

今日[きょう] 降[ふ]らなさそうですね。
It seems like it will not rain today. (Probably said while looking at the sky.)

分[わ]からない 単語[たんご]がいっぱいなので、 難[むずか]しそうです。
It seems difficult because there are many words I do not know.

明日[あした] 新[あたら]しいレストランに 行[い]ってみますか?
Will you try and go to the new restaurant tomorrow?

去掉括号中的文字:
雨も 降るし 強い 風が 吹くし、ひどい 天気ですね。 It rains and strong wind blows, the weather is rough ...
通常我会将字符串方法中的replaceAll()replaceAll("\\[\\w*\\]", "")一起使用,但在这里不起作用。另外,这里有汉字和平假名的组合,所以我真的不知道如何使用任何类型的系统,包括给定多个字符集的Unicode字符扩展。
根据这篇文章(https://stackoverflow.com/a/10810002/2058221),\\w应该知道任何语言的文本字符,所以我不知道为什么它在这个应用程序中不起作用。

dgtucam1

dgtucam11#

您的尝试非常接近。使用replaceAll("\\[[^\\]]+\\]", "")。这将查找一个开始方括号,然后查找不是结束方括号的任何字符一次或多次,直到找到一个结束方括号。
或者,如果您希望将方括号之间的内容限制为平假名、片假名和标点符号,则:replaceAll("\\[[\u3000-\u30ff]+\\]", "") .

相关问题