cai1234 发表于 2015-12-20 13:13:20

[已解决]请教关于字符串处理(数据库),未知如何处理?

本帖最后由 cai1234 于 2015-12-20 20:34 编辑

现有以下的文本:
SELECTBegindate ,enddate ,area ,ptype ,num FROM    ecustomer
如何处理成以下格式:
SELECTBegindate=Begindate ,enddate=enddate ,area=area,ptype=ptype ,num=num FROM    ecustomer
或者
SELECTBegindate AS Begindate ,enddate AS enddate ,area AS area,ptype AS ptype ,num AS num FROM    ecustomer
即逗号前的字段名"="自己本身 或 加 “AS” 后 本来字段,其他不变。
谢谢!

afan 发表于 2015-12-20 15:05:17

Local $sSource = 'SELECTBegindate ,enddate ,area ,ptype ,num FROM    ecustomer'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '(\S+)\h+(,|FROM)', '\1 AS \1 \2')
MsgBox(0, '替换结果', $sSRERe)

cai1234 发表于 2015-12-20 19:45:57

太感谢 AFAN 了 .
查了相关的资料,还是不清楚含义,
(\S+) 匹配任意非空的字符
\h+任何水平的空白字符
(,|FROM)    逗号 或者 FROM
引用Afan :加了一对括号就是组,在替换时,可以用“\1”引用这个组,即:将所有的内容替换成组内的内容“\1”
\2 不知道什么意思
刚刚看了几个文章:
http://www.autoitx.com/thread-1364-1-1.html
http://www.autoitscript.com/autoit3/pcrepattern.html

afan 发表于 2015-12-20 20:29:19

回复 3# cai1234


    都解释得很正确的,不清楚的 \2 就是引用第2个组,和 \1 引用第1个组 是一个意思。
在这个表达式中包含可以引用的两对(),即2个组,\1 = 第1对()里面的匹配; \1= 第2对() 里面的匹配

cai1234 发表于 2015-12-20 20:31:22

谢谢了,明白了。
页: [1]
查看完整版本: [已解决]请教关于字符串处理(数据库),未知如何处理?