RegEx添加逗号和单引号

时间:2015-06-19 21:09:33

标签: regex formatting format string-formatting

先谢谢你的帮助......我有以下格式的信息小组:

ACMH       ADMIT TO XXX                  
ACSU       ADMIT TO XXX SUB-ACUTE  (TCU) 
ADOPT      ADOPTION                      
AMA        AGAINST MEDICAL ADVICE        
APSY       ADMIT TO CMH PSYCHIATRIC UNIT 
CANCEL     CANCELLED SERVICE             
CANCELER   CANCELLED ER                  
CANCELTRI  CANCELLED TRIAGE              
EXP        EXPIRED                       

我需要将Panel格式化为:

'ACMH','ADMIT TO XXX'                  
'ACSU','ADMIT TO XXX SUB-ACUTE  (TCU)' 
'ADOPT','ADOPTION'                      
'AMA','AGAINST MEDICAL ADVICE'        
'APSY','ADMIT TO CMH PSYCHIATRIC UNIT' 
'CANCEL','CANCELLED SERVICE'             
'CANCELER','CANCELLED ER'                  
'CANCELTRI','CANCELLED TRIAGE'              
'EXP','EXPIRED'

我的同事建议更换RegEx。这是一个合适的策略吗?如果是这样,有人可以为我提供一些如何实现这一目标的指导。


我的RegEx经验非常有限(接近不存在)所以任何解释都是值得赞赏的。


此信息正在插入SQL Server数据库中。我们有一个程序,它将使用单引号读取.csv文件,并且几乎插入到表中。

...即

Insert Into  myTable  ( CodeValue, Description)
Values ('ACMH', 'ADMIT TO XXX')

我们从来没有得过这样的小组,所以我想知道是否有可能实现。

1 个答案:

答案 0 :(得分:2)

您可以替换

^(\S+)\s+(.*?)\s*$

'$1','$2'

DEMO

说明:

  • ^匹配行的开头
  • (\S+)匹配非空格字符的非空序列。围绕它的括号将其放入捕获组1
  • \s+匹配第一个字段
  • 之后的空格
  • (.*?)是任意字符序列的非贪婪匹配,括号将匹配放在捕获组2中
  • \s*匹配行尾的空格。我这样做了,所以他们不会被包含在前面的捕获组中,以删除输入数据中的尾随空格。
  • $匹配行尾

在替换$1$2中,将重新捕获捕获组的内容。