在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 Team
和Weekly 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