【问题标题】:How to convert Pascal Case with Numbers to a sentence?如何将 Pascal Case with Numbers 转换为句子?
【发布时间】:2020-12-16 23:01:55
【问题描述】:

我正在尝试将带有数字的 Pascal Case 字符串转换为句子:

OpenHouse2StartTimestamp = > Open House 2 Start Timestamp

感谢this answer,我已经能够使用正则表达式在没有数字的情况下将它们分开,但是当数字存在时如何做到这一点让我感到困惑:

string sentence = Regex.Replace(label, "[a-z][A-Z]", m => m.Value[0] + " " + m.Value[1]);

如何将数字添加到组合中?

【问题讨论】:

标签: c# .net regex


【解决方案1】:

你可以使用

var sentence = Regex.Replace(label, @"(?<=[a-z])(?=[A-Z])|(?<=\d)(?=\D)|(?<=\D)(?=\d)", " ");

请参阅.NET regex demo。正则表达式匹配:

  • (?&lt;=[a-z])(?=[A-Z])| - 小写和大写 ASCII 字母之间的位置,或
  • (?&lt;=\d)(?=\D)| - 数字和非数字之间的位置,或
  • (?&lt;=\D)(?=\d) - 介于非数字和数字之间的位置。

由于您只需要在匹配的位置插入一个空格,因此您不需要匹配评估器,只需使用字符串替换模式即可。

【讨论】:

  • 感谢您的解释。现在我看到它是有道理的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 2021-02-11
  • 1970-01-01
  • 2020-01-24
  • 2011-05-03
  • 2022-01-01
相关资源
最近更新 更多