首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SP中的上一次更改日志详细信息末尾追加字符串

在SP中的上一次更改日志详细信息末尾追加字符串
EN

Stack Overflow用户
提问于 2020-11-01 07:29:27
回答 1查看 59关注 0票数 1

我正在尝试使用C#和regex添加更改日志细节。在下面给定的代码中,我们需要在最新的变更细节之后添加更改日志详细信息。我试过使用regex,但只能匹配更改日志的标题。下面是存储过程中的一个示例脚本,我们试图对SP的、触发器和函数使用相同的代码。如果将regex用于其他对象类型,请告诉我是否有任何限制。

Regex用于匹配changelog标题:((?i)日期\s*(?i)AUTHOR\s*(?i)DESCRIPTION\s*)

输入:

代码语言:javascript
复制
/***********************************************************************************************      
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
**********************************************************************************************/      

预期产出:

代码语言:javascript
复制
/***********************************************************************************************      
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
**********************************************************************************************/      

https://regex101.com/r/w351JF/1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-01 09:32:12

若要匹配,直到上次更改日志之后:

代码语言:javascript
复制
(?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+

.NET Regex演示

用完全匹配替换,然后是替换字符串和换行符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64629599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档