VBScript正则表达式插入行

时间:2015-06-19 13:53:24

标签: regex vbscript

我尝试在带有VBScript的文件中的两个特定行之间插入一行:

# Ligne 1
# Ligne 2

=>

# Ligne 1
# Ligne 1 bis
# Ligne 2

我的脚本代码是:

Dim regEx
Set regEx = New RegExp   

regEx.Pattern = "# Ligne 1\r\n# Ligne 2"      
regEx.Pattern = patrn       
regEx.IgnoreCase = not Casse   
regEx.Global = True  

RegExpReplace=regEx.Replace(Source,"# Ligne 1\r\n# Ligne 1 bis\r\n# Ligne 2")

已找到表达式但替换文本很糟糕。 结果是:

# Ligne 1\r\n# Ligne 1 bis\r\n# Ligne 2

我试过了:

regEx.Pattern = "^# Ligne 1$\r\n^# Ligne 2$"   
regEx.IgnoreCase = not Casse   
regEx.Global = True  
regEx.Multiline = True
RegExpReplace=regEx.Replace(Source,"^# Ligne 1$\r\n^# Ligne 1 bis$\r\n^# Ligne 2$")

结果是:

^# Ligne 1$\r\n^# Ligne 1 bis$\r\n^# Ligne 2$

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:1)

RegExpReplace=regEx.Replace(Source,"# Ligne 1" & vbCrLf & " # Ligne 1 bis" & vbCrLf &"# Ligne 2")

您将与正则表达式匹配的字符串替换为指示为替换的字符串(捕获组占位符除外)。在VBScript \r\n内部与正则表达式中的含义不同,因此,如果需要包含回车符和换行符,则需要直接连接它们