我正在尝试在字符串中添加一个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");
我可以为这两个输入设置一个正则表达式吗?
非常感谢
答案 0 :(得分:0)
通过在版本/索引中引入一个字母(或者第一部分是什么),你会感到很复杂。你可以用它来解决这个问题:
([\d._]+(?:[A-Z](?=[A-Z]))?)
(注意!没有C逃离\
。请检查ideone example。)
它抓取由数字,点和下划线组成的所有内容。然后,在可选非捕获组中,它匹配(包含在先前捕获组中)大写字母,如果则后跟另一个大写字母(正向预测) )。
但是,这确实假设 标题始终以大写字母开头。即如果数字部分后跟两个大写字母,则假定第一个是数字部分的一部分。
替换为$1\t
以获得所需效果。