Tag: 替换

删除Tab-whitespace?

我在C#中遇到了一个相当奇怪的问题,即删除空格。 我当前的代码如下所示: string s = “This is a string without spaces”; s = s.Replace(” “, string.Empty); 在此示例中,结尾处的最后一个空格,在“不”之后是缩进(Tab),而不是实际的空格键空格。 显然String.Replace不关心它,所以它忽略它,并留下那里的空白。 有可能避免这个问题吗?

查找并替换RegEx问题

由于我在其他问题上对SO的所有帮助很大,我开始掌握RegEx。 但我仍然对这个感到厌烦: 我的代码是: StreamReader reader = new StreamReader(fDialog.FileName.ToString()); string content = reader.ReadToEnd(); reader.Close(); 我正在阅读文本文件,我想搜索此文本并进行更改(X和Y值始终在我的文本文件中互相跟随): X17.8Y-1。 但是这个文本也可以是X16.1Y2.3 (在X和Y之后值总是不同的) 我想把它改成这个 X17.8Y-1.G54 要么 X(值)Y(值)G54 我的RegEx声明如下,但它无效。 content = Regex.Replace(content, @”(X(?:\d*\.)?\d+)*(Y(?:\d*\.)?\d+)”, “$1$2G54”); 有人可以为我修改它,以便它可以工作,并将搜索X(通配符)Y(通配符)并将其替换为X(值)Y(值)G54?

使用C#检测文件名字符是否被视为国际字符

我已经编写了一个小型控制台应用程序(下面的源代码)来定位和选择性地重命名包含国际字符的文件,因为它们是大多数源代码控制系统不断痛苦的根源(下面有一些背景知识)。 我正在使用的代码有一个简单的字典,其中包含要查找和替换的字符(并且使用多个字节的存储来核对每个其他字符),但它感觉非常hackish。 什么是正确的方法(a)找出角色是否是国际性的? (b)最佳ASCII替换字符是什么? 让我提供一些背景信息,说明为什么需要这样做。 碰巧的是,丹麦Å字符在UTF-8中有两种不同的编码,两者都代表相同的符号。 这些被称为NFC和NFD编码。 Windows和Linux默认会创建NFC编码,但要遵守它给出的任何编码。 Mac会将所有名称(保存到HFS +分区时)转换为NFD,因此会为在Windows上创建的文件名返回不同的字节流。 这有效地打破了Subversion,Git和许多其他不关心正确处理这种情况的实用程序。 我目前正在评估Mercurial,后者在处理国际角色方面更加糟糕。对这些问题相当厌倦,无论是源代码控制还是国际角色都必须去,所以我们在这里。 我目前的实施: public class Checker { private Dictionary internationals = new Dictionary(); private List keep = new List(); private List seen = new List(); public Checker() { internationals.Add( ‘æ’, “ae” ); internationals.Add( ‘ø’, “oe” ); internationals.Add( ‘å’, “aa” ); internationals.Add( ‘Æ’, “Ae” ); internationals.Add( […]

c#替换文本文件中的字符串

我想在文本文件中替换字符串。 我使用以下代码: string text = File.ReadAllText(@”c:\File1.txt”); text = text.Replace(“play”,”123″); File.WriteAllText(@”c:\File1.txt”, text); 它不仅将“播放”改为“123”,还将“显示”改为“dis123” 如何解决这个问题?

string IndexOf和Replace

我今天刚刚遇到这个问题,并想知道是否有人知道为什么这个测试可能会失败(取决于文化)。 目的是检查测试文本是否包含彼此相邻的两个空格,这根据string.IndexOf (即使我告诉字符串将所有出现的两个空格替换为彼此)。 经过一些测试似乎\xAD在某种程度上导致了这个问题。 public class ReplaceIndexOfSymmetryTest { [Test] public void IndexOfShouldNotFindReplacedString() { string testText = “\x61\x20\xAD\x20\x62″; const string TWO_SPACES = ” “; const string ONE_SPACE = ” “; string result = testText.Replace(TWO_SPACES, ONE_SPACE); Assert.IsTrue(result.IndexOf(TWO_SPACES) < 0); } }

用星号替换小写字符

我写了一个代码,用于将小写字符替换为*。 但它不起作用。 问题出在哪儿? private void CharacterReplacement() { Console.WriteLine(“Enter a string to replacement : “); string TargetString = Console.ReadLine(); string MainString = TargetString; for (int i = 0; i < TargetString.Length; i++) { if (char.IsLower(TargetString[i])) { TargetString.Replace(TargetString[i], '*'); } } Console.WriteLine("The string {0} has converted to {1}", MainString, TargetString); }

查找特定文本并替换为MS Word中的图像文件

MS word文件如下所示 #A ## B ## C ## D ## E# 我已经实现了下面的代码来使用C#替换MS word文件中的文本。 public void ReplaceWordDoc() { object missing = Missing.Value; Document doc = Globals.ThisAddIn.Application.ActiveDocument; List search = GetSearchList(); foreach (var searchItem in search) { foreach (Range tmpRange in ((Document)doc).StoryRanges) { tmpRange.Find.ClearFormatting(); tmpRange.Find.Text = searchItem.Find; tmpRange.Find.Replacement.ClearFormatting(); tmpRange.Find.Replacement.Text = searchItem.Replace; object replaceAll = WdReplace.wdReplaceAll; if (searchItem.Replace.Contains(“gif”)) […]

C#string.Replace不起作用

基本上我们的问题是:我们不能替换这样的字符串:10003 *但我们可以替换这样的字符串:10003 我们想要替换看起来像这样的字符串的一部分:10003 *这是我们的代码: string text = sr2.ReadToEnd(); sr2.Close(); while (loop != lstTxt.Items.Count) { string SelectedItem = lstTxt.SelectedItem.ToString() + “*”; text = text.Replace(SelectedItem, “tietze111”); if (lstTxt.SelectedIndex < lstTxt.Items.Count – 1) lstTxt.SelectedIndex++; loop++; } sw2.Write(text); 但它不起作用。 当我们在要替换的部分中省略*时,它可以工作。 但我们也必须更换*。 你知道我们要改变什么吗? 当我们使用它时它起作用: string text = sr2.ReadToEnd(); sr2.Close(); while (loop != lstTxt.Items.Count) { string SelectedItem = lstTxt.SelectedItem.ToString(); // changed […]

基于组件的体系结构:在运行时替换程序集

在运行时替换程序集是个好主意吗? 我可以遇到什么问题? 原始问题: StructureMap – 能够在运行时替换程序集 在Web和非Web应用程序中在运行时替换程序集有什么区别?

C#Regex.Replace():获取值

我正在解析BB代码图片标签: [IMG] http://imagesource.com [/ IMG] 我正在使用以下Replace()函数: Regex.Replace(msg, @”\[img\]([^\]]+)\[\/img\]”, @””, RegexOptions.IgnoreCase); 我需要在解析时获取URL。 我需要知道“$ 1”的价值。 可能吗? Regex类以某种方式用我需要的值替换“$ 1”字符串,因此必须有一种方法来获取它。