没有很多
to-嘿,怎么了?
-没什么大不了的
I使用该工具箱创建一个仅使用一个按钮来选择正确文件的接口。这是我为此按钮的代码:
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string text = File.ReadAllText(openFileDialog1.FileName, Encoding.GetEncoding("iso-8859-1"));
text = text.Replace("-A", "- A");
File.WriteAllText(openFileDialog1.FileName, text, Encoding.GetEncoding("iso-8859-1"));
}
}
这基本上是用“ - ”替换为“ -a”,从而创建了一个空间。这是我想出的解决方案,我打算用每封信,包括重音字母,例如à,Á,Á,è,é等。
这不起作用。如果我将
Text= text.replace(“ - é”,“ - é”);程序无济于事。
我想知道的是如何解决此问题。感谢您阅读,如果您有更好的替代方法,请随时让我知道。
为了评论,请使用正则
var rx = new System.Text.RegularExpressions.Regex("^-([^ ])");
... in your loop
var text = rx.Replace(text, "- $1");
Source:Https://xkcd.com/208/
Edit:您没有循环,您有一个字符串,其中包含文件的完整内容,其中每行应包含字幕线(对吗?)。 如果是这样,您可以配置正则表达式以将字符串视为行列表,如:
var rx = new Regex("^-([^ ])", RegexOptions.Multiline);
以重音性格,考虑使用其
Unicode
表示:
string text = "-\u00C9"; //-É
text = text.Replace("-\u00C9", "- \u00C9"));
,您也可以使用无破的空间进行空间更换,以防万一:
string text = "-\u00C9";
text = text.Replace("-\u00C9", "-\u00A0\u00C9"));
然后您可以使用UTF-8/UTF-16进行编码:
File.WriteAllText(openFileDialog1.FileName, text, Encoding.GetEncoding("UTF-8"));