目前(使用C#)我使用字符串方法INSTR,子串和插入到部分数字放入一个字符串。即使该方法工作正常,但它非常混乱,并且不易管理,因为在后台还有其他内容需要扩展时。 我想知道是否可以使用正则表达式插入节号而不是使用标准字符串方法?如果是这样,它是如何完成的?使用正则表达式插入序列编号
例如:
原始字符串
快速赤狐。跳过懒狗?快速的红狐狸! “跳过”这只懒狗。如果使用正则表达式
1)所述的快速红色狐
输出。 2)跳过懒惰的狗? 3)快速红色 狐狸! “4)跳过”懒狗。
PS:这是当前的方法我用无正则表达式:
public string[] ApplyContentNumbering(string[] lines)
{
int count = 1;
if (lines != null && lines.Length > 0)
{
lines[0] = String.Format("{0} {1}", Chapter, lines[0].Substring(0));
bool isOpen = false;
for (int index = 1; index < lines.Length; index++)
{
count++;
lines[index] = String.Format("{0} {1}", count, lines[index].Substring(0));
if (lines[index].IndexOf("\"") > 0)
{
for (int c = 0; c < lines[index].Length; c++)
{
if (lines[index].Substring(c, 1).Equals("\""))
{
if (isOpen == false)
{
count++;
lines[index] = lines[index].Insert(c + 1, String.Format("{0}", count));
isOpen = true;
}
else
{
isOpen = false;
}
}
}
}
}
}
}
有什么要求?何时插入号码? –
Hi Wiktor,我想在每个句子的开头和每个语音标记的开头添加编号,因此序号不断递增。 – Overdrive77
我不确定正则表达式是否正确。我相信代码可以从一些重构中受益,因为我无法一眼就看出它的工作原理。将一些功能分离成独立于此特定方法的方法。比如将句子排成一行的方法。然后另一种插入序列的方法等。 –