试图弄清楚如何执行最佳执行以下操作的正则表达式(或任何方法):
搜索一个弦以寻找日语字符(Hiragana,Katakana和Kanji)。
用标签包裹日本字符的不间断子字符串。例如,もち和名前benさん将产生以下内容:
<span lang="ja">もち</span>
<span lang="ja">名前は</span>Ben<span lang="ja">さん</span>
在字符串中在全球范围内进行此操作。
我认为您应该能够使用:
gsub(/([p{Hiragana}p{Katakana}p{Han}]+)/) { %Q{<span lang="ja">#{$1}</span>} }
例如:
'さ名前はBenさんx⽫⽬ㇰ'.gsub(/([p{Hiragana}p{Katakana}p{Han}]+)/) { %Q{<span lang="ja">#{$1}</span>} }
生产:
<span lang="ja">さ名前は</span>Ben<span lang="ja">さん</span>x<span lang="ja">⽫⽬ㇰ</span>
han 应该覆盖所有汉字这个级别,我仍然不知道日语)。
还有其他字符(例如 ㋀
)可能出现在日语文本中,而hirigana,katakana或han/kanji不涵盖,因此您可能需要根据确切的性质扩展一些角色类别您要处理的文本以及您想与㋀
这样的异常值进行的处理。