正则求助,把指定内容用正则替换成指定格式!
内容:名称 单价数量总价
这个是商品 10.001 10.00
这个是10.001 10.00
以下想达到的效果!
名称 单价数量总价
这个是商品 10.001 10.00
这个是 10.001 10.00
因为输入的信息名称长短都不一样所以想用正则实现!!
内容都是要写入到word文档的``` 我感觉~好像没什么变化~ 回复 2# haijie1223
就是让数值 都对其 Dim $str = "这个是商品 10.001 10.00" & @CRLF & _
"这个是10.00 1 10.00" & @CRLF & _
"以下想达到的效果!" & @CRLF & _
"名称 单价数量总价" & @CRLF & _
"这个是商品 10.00 1 10.00" & @CRLF & _
"这个是 10.00 1 10.00"
Dim $sstr = StringRegExp($str, "(?m)\d\S*\s*\d*\s*\d\S*", 3)
If Not @error Then
For $i = 0 To UBound($sstr) - 1
$sstr[$i] = StringRegExpReplace($sstr[$i], "\s+", "")
ConsoleWrite($sstr[$i] & @CRLF)
Next
EndIf word里有一个selection.ConvertToTable,直接可以把文本转换成表格,就对齐了 回复 5# kevinch
老大,可喜可贺,终于把您那个亮得瞎眼的 Noki XXXX签名换掉了~! 本帖最后由 afan 于 2013-5-12 20:14 编辑
这个用正则意义不大~ 就算 StringRegExpReplace($s, '\h+', @TAB) 也难对齐,而且在不同的控件里显示对齐方式也有差别 回复 6# user3000
{:face (197):}
时过境迁了 #Include <Array.au3>
Dim $str ="名称 单价数量总价" & @CRLF & _
"这个是商品 10.00 1 10.00" & @CRLF & _
"这个是sssss 10.00 1 10.00"
While Not (StringInStr($str, "") = 0)
$str = StringReplace($str, "", " ")
WEnd
Dim $sstr = StringSplit($str,@CRLF,3)
Local $temp2=""
For $li In $sstr
$temp =StringSplit($li," ",2)
For $zz In$temp
$temp2 =$temp2 & StringFormat ("%-"&(20-get_cn_number($zz))&"s",$zz )
next
$temp2=$temp2& @CRLF
Next
ConsoleWrite($temp2)
MsgBox(0,"",$temp2)
Func get_cn_number($temp);获取字符串中中文字符的个数
Local $array = StringRegExp($temp, "[\x{4e00}-\x{9fa5}]", 3)
Return UBound($array)
EndFunc 回复 8# kevinch
与时俱进了,哈哈! 回复 8# kevinch
与时俱进了,哈哈!
咦,'淡泊以明志,宁静以致远'呢? 原来回复帖子是不带签名的啊!
页:
[1]