C# 在SP中上一个更改日志详细信息的末尾追加字符串
我正在尝试使用C#和regex添加更改日志详细信息。在下面给出的代码中,我们需要在最新的变更日志详细信息之后添加变更日志详细信息。我曾尝试使用regex,但只能匹配更改日志的标题。下面是存储过程中的一个示例脚本,我们尝试对SP、触发器和函数使用相同的代码。请让我知道在对其他对象类型使用regex时是否有任何限制 用于匹配changelog头的正则表达式:((?i)日期\s*(?i)作者\s*(?i)说明\s*) 输入:C# 在SP中上一个更改日志详细信息的末尾追加字符串,c#,sql,regex,C#,Sql,Regex,我正在尝试使用C#和regex添加更改日志详细信息。在下面给出的代码中,我们需要在最新的变更日志详细信息之后添加变更日志详细信息。我曾尝试使用regex,但只能匹配更改日志的标题。下面是存储过程中的一个示例脚本,我们尝试对SP、触发器和函数使用相同的代码。请让我知道在对其他对象类型使用regex时是否有任何限制 用于匹配changelog头的正则表达式:((?i)日期\s*(?i)作者\s*(?i)说明\s*) 输入: /*************************************
/***********************************************************************************************
PROCEDURE: DEL_ABCD_Table1
PARAMETERS: Sample int
APPLICATION: ABCD
PURPOSE: Deletes all records from the Table1
NOTES:
MODIFIED
DATE AUTHOR DESCRIPTION
---------- -------------- -------------------------------------------------------------
08/08/2012 Jim Initial Version
09/25/2014 Pam Adding Canvas
09/11/2018 Dwight Adding rootbeer
12/24/2019 Angela Adding Catnip
**********************************************************************************************/
预期产出:
/***********************************************************************************************
PROCEDURE: DEL_ABCD_Table1
PARAMETERS: Sample int
APPLICATION: ABCD
PURPOSE: Deletes all records from the Table1
NOTES:
MODIFIED
DATE AUTHOR DESCRIPTION
---------- -------------- -------------------------------------------------------------
08/08/2012 Jim Initial Version
09/25/2014 Pam Adding Canvas
09/11/2018 Dwight Adding rootbeer
12/24/2019 Angela Adding Catnip
11/01/2019 SK Adding Thats what she said
**********************************************************************************************/
要匹配到上次更改日志之后:
(?i)DATE\s+AUTHOR\s+DESCRIPTION\r?\n--[\s-]+\r?\n(?:(?!\*\*).*\r?\n)*(?=\*\*)
解释
使用不区分大小写的匹配(?i)
匹配更改日志标题DATE\s+AUTHOR\s+DESCRIPTION\r?\n
匹配,例如至少匹配--[\s-]+\r?\n
,后跟1+次--
或空格字符-
非捕获组(?:
如果不是以(?!\*\*)。\r?\n
**
关闭组并重复0多次以匹配所有行)*
例如至少为最后一行断言(?=\*\*)
**
\t+
而不是\s+
替换为完全匹配,后跟替换字符串和换行符
是否需要将正则表达式附加到文件中?我不知道你在问什么。您可以读取文件,然后在最后一行之前插入一行并重写它。请在问题中包括您尝试的正则表达式,而不仅仅是作为源标题中的external link.change log。讨厌!这就是源代码控制的目的。20年前可能很普遍,但现在它是一种反模式。你可以寻找以“******”开头的第一行,因为这个问题没有什么不清楚的地方。这正是我要寻找的,我所做的唯一的补充是,我把大括号放在组中以便于替换。非常感谢。