使用正则表达式在String之间添加制表符空间

时间:2016-05-31 18:13:13

标签: c# regex

我正在尝试在字符串中添加一个Tab空间,如下所示:

00904

String 1: 1.1_1ATitle of the Chapter String 2: 1.1_1Title of the Chapter 之间没有空格。 或"_1A" and "T"之间。

所需的输出是

"_1" and "T"

以下是我的尝试:

1.1_1A      Title of the Chapter.
1.1_1       Title of the Chapter.

string output=  Regex.Replace(input, "^([\\d.]+)", "$\t");

string output=  Regex.Replace(input, "^([\\d[A-Z]]+)", "$1 \t");

我可以为这两个输入设置一个正则表达式吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

通过在版本/索引中引入一个字母(或者第一部分是什么),你会感到很复杂。你可以用它来解决这个问题:

([\d._]+(?:[A-Z](?=[A-Z]))?)

(注意!没有C逃离\。请检查ideone example。)

它抓取由数字,点和下划线组成的所有内容。然后,在可选非捕获组中,它匹配(包含在先前捕获组中)大写字母,如果则后跟另一个大写字母(正向预测) )。

但是,这确实假设 标题始终以大写字母开头。即如果数字部分后跟两个大写字母,则假定第一个是数字部分的一部分。

替换为$1\t以获得所需效果。

See it here at ideone