Csharp/C#教程:在C#中使用Regex在ConcatenatedFileNamesLikeThis之间插入空格?分享


在C#中使用Regex在ConcatenatedFileNamesLikeThis之间插入空格?

我们正在尝试从SSRS报告文件名生成用户友好的报告名称,这些名称不能在名称中包含空格,但应该可以使用正则表达式从报告名称生成它们以扫描大写/ nocaps边界和alpha /数字边界。 然而,所有上限都使事情复杂化。 例如:

ListOfMembers => List Of Members Weekly123Report => Weekly 123 Report MembersOfIEETeam => Members Of IEE Team 

所以我认为这是最小的规则集;

 (a-z0-9)(AZ) gets replaced with "$1 $2" (AZ)?(AZ)(az) gets replaced with "$1$2 $3" (A-Za-z)(0-9) gets replaced with "$1 $2" (0-9)(A-Za-z) gets replaced with "$1 $2" 

有可能一下子做到这一点还是需要多次通过? 假设我们有一个报告文件名,例如:

 WeeklyIEEReportWC20090103SortedByDate 

我已经看到SSRS在处理图表上的系列名称时执行类似的操作,它会从连接版本中动态生成它们。

任何信息赞赏! ?

我的解释和解决方案:

 var input = "WeeklyIEEReportWC20090103SortedByDateXFoo3W3CBar4x"; var re = @"(?!^)(?:[AZ](?:[az]+|(?:[AZd](?![az]))*)|d+)"; string value = Regex.Replace(input, re, " $0"); 

结果: Weekly IEE Report WC20090103 Sorted By Date X Foo 3 W3C Bar 4x

编辑2个固定的IEE

 var input = @"WeeklyIEEReportWC20090103SortedByDate"; string p = @"(?<=[AZ])(?=[AZ][az])|(?<=[a-z0-9])(?=[AZ])|(?<=[a-zA-Z])(?=[0-9])"; string value = Regex.Replace(input, p, " "); 

生成Members Of IEE TeamWeekly IEE Report WC 20090103 Sorted By Date提供的样本的Weekly IEE Report WC 20090103 Sorted By Date

上述就是C#学习教程:在C#中使用Regex在ConcatenatedFileNamesLikeThis之间插入空格?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/960831.html

(0)
上一篇 2021年11月25日
下一篇 2021年11月25日

精彩推荐