UEstudio正则表达式 查找1位的数字,在数字前面插入1个空格

UEstudio正则表达式查找1位的数字,在数字前面插入1个空格样本文本无明细规律,例如:B7=MSELECT('2013-M1-19->B7',,,K('单位')='0... UEstudio正则表达式 查找1位的数字,在数字前面插入1个空格

样本文本无明细规律,例如:
B7=MSELECT('2013-M1-19->B7',,,K('单位')='001');
B8=MSELECT('2013-M1-19->B7',,,K('单位')='003');
B9=MSELECT('2013-M1-19->B7',,,K('单位')='101');
B10=PTOTAL(?B6:?B9);
B11=MSELECT('2013-M1-19->B7',,,K('单位')='101');
B12=MSELECT('2013-M1-19->B7',,,K('单位')='102');

准备把格式统一下,所以准备查到只有1位的数字,在数字前面插入1个空格(超过1位的数字不处理)。替换成如下文本
B 7=MSELECT('2013-M 1-19->B 7',,,K('单位')='001');
B 8=MSELECT('2013-M 1-19->B 7',,,K('单位')='003');
B 9=MSELECT('2013-M 1-19->B 7',,,K('单位')='101');
B10=PTOTAL(?B 6:?B 9);
B11=MSELECT('2013-M 1-19->B 7',,,K('单位')='101');
B12=MSELECT('2013-M 1-19->B 7',,,K('单位')='102');

UEstudio用perl的正则 (?<!\d)\d(?!\d) 可以查到,但是要替换时,好像不支持perl的分组($1 $2)

用unix的正则来替换,要怎么写?
=================================
把(\D)(\d\D)替换成\1 \2是个好办法

原文
E9=IF(?C9=0,0,(?B9-?C9)/ABS(?C9));
E10=IF(?C10=0,0,(?B10-?C10)/ABS(?C10));
结果
E 9=IF(?C 9=0, 0,(?B 9-?C 9)/ABS(?C 9));
E10=IF(?C10= 0,0,(?B10-?C10)/ABS(?C10));

第一句中 IF(?C 9=0, 等号后的0前面没有插入空格(没有匹配上)
但是第二句中 IF(?C10= 0, 等号后的0前面有插入空格(匹配上)

为什么两个会有这样的差别?

========================
已经验证,相同的正则语法在ultraedit和UEstudio在上确实不同,应该是软件问题
展开
 我来答
自由de王国
2014-02-10 · TA获得超过1066个赞
知道小有建树答主
回答量:661
采纳率:50%
帮助的人:843万
展开全部
不能用$1 $2的话,可以用\1 \2
更多追问追答
追问
\1 \2 就要用unix的正则来查找,但是好像又不支持负向零宽断言
追答
哦,我知道了,你的正则里根本没有任何分组。环视,也就是零宽度断言不是分组。
你用perl正则把(\D)(\d\D)替换成\1 \2
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式