在可替换的完整单词列表上拆分句子,保留“;拆分词”;
本文关键字:拆分 句子 保留 分词 可替换 列表 单词 | 更新日期: 2023-09-27 18:26:37
我被难住了。
I went to the store at the mall at seven thirty in a big huff.
期望Regex.Split生成
- 我去了
- 去商店
- 在商场
- 七点半
- 怒气冲冲
对不起,我的第一次尝试是:'bto'b|'bat'b|'bin'b
,它捕获了介词。
下一次尝试消耗了整句话:
'bto'b([a-zA-Z ]*)|'bat'b([a-zA-Z ]*)|'bin'b([a-zA-Z ]*)
就像他们说的,我有问题,所以我选择了regex,现在我有酗酒的问题。
只需根据下面使用前瞻断言的regex来分割输入。Lookahead是零宽度断言,不使用任何字符,只断言匹配是否可能。
@"'s(?=to'b|at'b|in'b)"
演示
代码:
string value = "I went to the store at the mall at seven thirty in a big huff.";
string[] lines = Regex.Split(value, @"'s(?=to'b|at'b|in'b)");
foreach (string line in lines) {
Console.WriteLine(line);
}
IDEONE
(?='bto'b)|(?='bat'b)|(?='bin'b)
试试这个。在regex.split函数中使用此项。替换为'n
。请参阅演示。
http://regex101.com/r/uH3tP3/11