我正在尝试删除少于3个字符的任何“字符组”。
这是来源:
1.29取消部分计划C / 5879 2030.在i i.r e9g6Pop Iatian Area ProcH 22.4.93 Suburban Lands n f 53dv 3 N014 3.5.98。计划或任何来自M R.5I B.L.1laY98 E35的01 53。 P0 RT I 0 N S在Maroubrajuncti p / I .z。 .0 / .L。我。 .I
重复介于1和3之间的单词字符的设置范围,例如/ b \ w {1,3} \ b /不起作用,因为“C / 5879”将变为“5879”。
所需的输出如下:
1.29取消部分计划C / 5879 2030. e9g6Pop Iatian Area ProcH 22.4.93 Suburban Lands 53dv N014 3.5.98。计划来自R.5I B.L.1laY98 E35。 Maroubrajuncti
另一种可行的方法是通过加入由空格分隔的2个或更少字符的“字符组”来创建更大的“字符组”。
例如:
1.29取消部分计划C / 5879 2030. inii.r e9g6Pop Iatian Area ProcH 22.4.93 Suburban Lands nf 53dv 3N014 3.5.98。从MR5I B.L.1laY98 E35的0153计划orany。 P0RTI0NS AtMaroubrajuncti p / I.z。 0.0 / .L.I..I
我愿意接受任何解决方案,以便从Regex Hell拯救我。
答案 0 :(得分:0)
你对“单词”的定义是“空格分隔”,这与正则表达式对“单词到非单词”的定义不同,所以请使用环顾四周:
\s+\S{1,3}(?=\s)
请注意,表达式包含(捕获)前导空格,因此删除匹配项不会在结果中留下双重空格。
在regextester上测试结果是:
1.29取消部分计划C / 5879 2030. e9g6Pop Iatian Area ProcH 22.4.93 Suburban Lands 53dv N014 3.5.98。计划来自R.5I B.L.1laY98 E35。 Maroubrajuncti。我