考虑我有一个字符串如下。
string input = "合{あい}気{き}道{どう}生{う}まれる昨日{きのう}から揚{あ}げそば";
我想要的是一个数组,如下所示。
string[] output = {"合{あい}", "気{き}", "道{どう}",
"生{う}", "まれる", "昨日{きのう}",
"から", "揚{あ}", "げそば"};
查找原子部分的伪规则:
一个或多个汉字字符后跟{
,后跟一个或多个平假名字符,后跟}
{
和}
之间未包含的一个或多个平假名字符。
我不熟悉正则表达式。我也不知道如何区分汉字和平假名。你能帮我解决一下C#?
答案 0 :(得分:1)
您可以使用以下正则表达式:
[一-龯]+{\p{IsHiragana}+}|\p{IsHiragana}+(?![^{}]*})
请参阅regex demo
它包含两个选择:
[一-龯]+{\p{IsHiragana}+}
- 匹配1个或多个汉字([一-龯]+
,借用terrancesnyder),后跟{...}
内的一个或多个平假名符号或...... \p{IsHiragana}+(?![^{}]*})
- 一个或多个平假名后面没有{
或}
以外的字符,然后是}
。