相关疑难解决方法(0)

'foo'到底意味着什么?

我希望这有资格作为一个编程问题,就像在任何编程教程中一样,你最终会在代码示例中遇到'foo'.(是的,对吧?)

'foo'到底意味着什么?

如果它意味着什么都没有,它何时开始被使用呢?

language-agnostic coding-style

226
推荐指数
6
解决办法
14万
查看次数

替换字符串中第一次出现的模式

可能重复:
如何在.NET中替换字符串的第一个实例

假设我有字符串:

string s = "Hello world.";
Run Code Online (Sandbox Code Playgroud)

我怎么能替换第一个o在这个词Hello的假设Foo

换句话说,我想最终得到:

"HellFoo world."
Run Code Online (Sandbox Code Playgroud)

我知道如何更换所有o,但我想更换第一个

c# regex

137
推荐指数
3
解决办法
13万
查看次数

解析格式化的字符串

我正在尝试创建一个通用的格式化程序/解析器组合.

示例场景:

  • 我有一个string.Format()的字符串,例如 var format = "{0}-{1}"
  • 我有一个输入的对象(字符串)数组,例如 var arr = new[] { "asdf", "qwer" }
  • 我正在使用格式字符串格式化数组,例如 var res = string.Format(format, arr)

我想要做的是将格式化的字符串恢复回对象(字符串)数组.像(伪代码)的东西:

var arr2 = string.Unformat(format, res)

// when: res = "asdf-qwer"    
// arr2 should be equal to arr
Run Code Online (Sandbox Code Playgroud)

有没有经验做过这样的事情?我正在考虑使用正则表达式(修改原始格式字符串,然后将其传递给Regex.Matches以获取数组)并为格式字符串中的每个占位符运行它.这是可行的还是还有其他更有效的解决方案?

c# regex string

15
推荐指数
2
解决办法
2万
查看次数

由文化敏感的String.IndexOf方法匹配的子字符串长度

我尝试编写一种文化感知字符串替换方法:

public static string Replace(string text, string oldValue, string newValue)
{
    int index = text.IndexOf(oldValue, StringComparison.CurrentCulture);
    return index >= 0
        ? text.Substring(0, index) + newValue + text.Substring(index + oldValue.Length)
        : text;
}
Run Code Online (Sandbox Code Playgroud)

但是,它在Unicode组合字符上窒息:

// \u0301 is Combining Acute Accent
Console.WriteLine(Replace("déf", "é", "o"));       // 1. CORRECT: dof
Console.WriteLine(Replace("déf", "e\u0301", "o")); // 2. INCORRECT: do
Console.WriteLine(Replace("de\u0301f", "é", "o")); // 3. INCORRECT: do?f
Run Code Online (Sandbox Code Playgroud)

为了修复我的代码,我需要知道在第二个例子中,String.IndexOf只匹配一个字符(é),即使它搜索了两个(e\u0301).同样,我需要知道在第三个例子中,String.IndexOf匹配两个字符(e\u0301),即使它只搜索了一个(é).

如何确定匹配的子字符串的实际长度String.IndexOf

注意:执行Unicode规范化text和 …

.net c# unicode substring

14
推荐指数
1
解决办法
618
查看次数

用唯一值替换字符串中单词的每个实例

在一个字符串中,我试图用不同的值更新同一个单词的多个实例.

这是一个过于简化的示例,但给出以下字符串:

"The first car I saw was color, the second car was color and the third car was color"
Run Code Online (Sandbox Code Playgroud)

我要用"红色"替换单词颜色的第一个实例,第二个实例应为"绿色",第三个实例应为"蓝色".

我想要尝试的是一个正则表达式模式来查找已结合的单词,通过循环进行交互并一次替换一个.请参阅下面的示例代码.

var colors = new List<string>{ "reg", "green", "blue" };
var sentence = "The first car I saw was color, the second car was color and the third car was color";

foreach(var color in colors)
{
    var regex = new Regex("(\b[color]+\b)");
    sentence = regex.Replace(sentence, color, 1);
}
Run Code Online (Sandbox Code Playgroud)

但是,"颜色"一词永远不会被适当的颜色名称取代.我找不到我做错了什么.

c# regex

6
推荐指数
1
解决办法
508
查看次数

基于最佳实践的字符串连接

我有一个字符串,

string ij = "/alwaysSame09102012/myThing.aspx?asdasd=99&Urasdl=scashdasdeasdmeasds/tasdigaesdr1/gasdoasdveasdasdrnaasdancasde/eamsdeasdetiasdasdnagsds/tasidgeasdr1masdeetasdasd11180,/reasdMeasdetMe2as0d1asd0/asrdganasdiseasdasdgeasdetasdiasdngaasdsd.aasdspafsxasdffas?asdsdlaieasdnedtfe=asdsafaser1meafswedfhfdget111ertert80"
Run Code Online (Sandbox Code Playgroud)

现在我只需要用"always2013forever"更改第一个"alwaysSame09102012".

我知道我可以做这样的事情,

string ij = "/alwaysSame09102012/myThing.aspx?asdasd=99&Urasdl=scashdasdeasdmeasds/tasdigaesdr1/gasdoasdveasdasdrnaasdancasde/eamsdeasdetiasdasdnagsds/tasidgeasdr1masdeetasdasd11180,/reasdMeasdetMe2as0d1asd0/asrdganasdiseasdasdgeasdetasdiasdngaasdsd.aasdspafsxasdffas?asdsdlaieasdnedtfe=asdsafaser1meafswedfhfdget111ertert80"

string[] c = ij.split['/'];

string finalString =  ij.replace( "/" + c[0] + "/", "/" + "always2013forever" + "/");
Run Code Online (Sandbox Code Playgroud)

这是我的逻辑,但没有工作,请帮助,

只有我的字符串中的常量是 "/alwaysSame09102012/"我需要替换的

更新

**

  • 如果我在查询字符串中得到"alwaysSame09102012",那就是我不想使用replace的原因.

**

c#

1
推荐指数
1
解决办法
436
查看次数

如何在c#中用动态值替换字符串?

我有这个代码:

string a = "**MustbeReplaced**asdgasfsff**MustbeReplaced**asdfafasfsa";
//MustbeReplaced should be Replaced1, Replaced2, and so on
a = a.Replace("MustbeReplaced", "Replaced"); 
Run Code Online (Sandbox Code Playgroud)

每次有字符串替换时,我想用动态值替换它.例如,上面字符串的输出应该是:

"**Replaced1**asdgasfsff**Replaced2**asdfafasfsa"
Run Code Online (Sandbox Code Playgroud)

我知道String.Replace,但据我所知,它只适用于静态String替换.

有没有办法做到这一点?

.net c#

1
推荐指数
1
解决办法
1389
查看次数

如何替换.NET中第一次出现的子字符串?

我有如下字符串变量

 string pctSign = "\0\0\0";
Run Code Online (Sandbox Code Playgroud)

我想用“%”替换前两个字符

i.e. Final o/p:- pctSign="%\0\0";
Run Code Online (Sandbox Code Playgroud)

如何用String.Replace做到这一点?

c# asp.net string replace

0
推荐指数
1
解决办法
5060
查看次数

在C#字符串中查找引用的所有实例

我正在尝试使用正则表达式在C#字符串中查找并替换双引号的所有实例,但似乎无法理解答案,这是我到目前为止所拥有的:

private string checkEscapeChars(string s)
{
    s = Regex.Replace(s, @"[""]", String.Empty);
    return s;
}
Run Code Online (Sandbox Code Playgroud)

现在,运行正常,但我可以说我有一个字符串"这是我的"样本字符串"

我想摆脱"之前的样本.上面的工作会不会这样?或者它会找到并替换匹配双引号的所有实例,而不是单个双引号?

c# regex

0
推荐指数
1
解决办法
264
查看次数

用不同的值替换一个单词

我有一个字符串"{Day} - 是胜利日.{Day} - 是我的生日";

如何用不同的数字替换{Day}?我尝试:

string text = "{Day} - is a victory day. {Day} - is my birthday";
if (text.Contains("{Day}"))
    text = text.Replace("{Day}", xNet.Rand.Next(1, 30).ToString());
Run Code Online (Sandbox Code Playgroud)

但是在2次替换中,日子是相同的.

c#

0
推荐指数
1
解决办法
1006
查看次数