我正在尝试使用正则表达式将日语文本块分隔成单个句子。现在我主要在rubular进行实验,但这是我到目前为止所做的。
正则表达式:/(.*?(。|?|!))/
示例文本
强面のため周囲の人から敬远されている主人公が,クラスメイトと共通の话题を持とうとVRMMORPG「アナザーワールド」のベータテストに申し込んだ。ところが当选したのは彼一人。しかたなくひとりでゲーム内の仮想世界「イストピア」に「ケイオス」と名乘って乘り込んだが,そこはゲームでありながら五感すべてを体感でき,现実と间违えるほどのリアルな世界だった。サポートAIのテミスの协力を得つつ,クエストをこなしていったが,実はそこは本物の异世界「イストピア」であり,ケイオスのこなしたクエストによって,多くの人が影响を受けて......というお话。その戏言,闻き饱きたわ!あれ,ここにあった笔入れはどこにやったの?
我获得的结果是正确的,但它也单独匹配标点字符
如何改进正则表达式,使标点符号不单独匹配?
答案 0 :(得分:3)
使用(.*?[。?!])
似乎可以解决问题,请查看rubular
Match 1
1. 強面のため周囲の人から敬遠されている主人公が、クラスメイトと共通の話題を持とうとVRMMORPG「アナザーワールド」のベータテストに申し込んだ。
Match 2
1. ところが当選したのは彼一人。
Match 3
1. しかたなくひとりでゲーム内の仮想世界「イストピア」に「ケイオス」と名乗って乗り込んだが、そこはゲームでありながら五感すべてを体感でき、現実と間違えるほどのリアルな世界だった。
Match 4
1. サポートAIのテミスの協力を得つつ、クエストをこなしていったが、実はそこは本物の異世界「イストピア」であり、ケイオスのこなしたクエストによって、多くの人が影響を受けて……というお話。
Match 5
1. その戯言、聞き飽きたわ!
Match 6
1. あれ、ここにあった筆入れはどこにやったの?
答案 1 :(得分:0)
这个怎么样?
str.scan /[\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}[[:punct:]]]+/
=> ["強面のため周囲の人から敬遠されている主人公が、クラスメイトと共通の話題を持とうと",
"「アナザ",
"ワ",
"ルド」のベ",
"タテストに申し込んだ。ところが当選したのは彼一人。しかたなくひとりでゲ",
"ム内の仮想世界「イストピア」に「ケイオス」と名乗って乗り込んだが、そこはゲ",
"ムでありながら五感すべてを体感でき、現実と間違えるほどのリアルな世界だった。サポ",
"ト",
"のテミスの協力を得つつ、クエストをこなしていったが、実はそこは本物の異世界「イストピア」であり、ケイオス のこなしたクエストによって、多くの人が影響を受けて……というお話。その戯言、聞き飽きたわ!あれ、ここにあった筆入れはどこにやったの?"]