如何使用String.Replace

Luc*_*uca 1 c# string replace

快速提问:

我有这个字符串m_Author, m_Editor但我在字符串中有一些奇怪的ID东西,所以如果我这样做WriteLine它会看起来像:

'16; #Luca Hostettler'

我知道我可以做到以下几点:

    string author = m_Author.Replace("16;#", "");
    string editor = m_Editor.Replace("16;#", "");
Run Code Online (Sandbox Code Playgroud)

之后我会有名字,但我想将来我会有其他人和其他身份证.

所以问题是:我可以告诉String.Replace("#AndEverythingBeforeThat", "") 所以我也可以

'14; #Luca Hostettler'

'15; #Hans Meier'

并且会得到输出:Luca Hostettler,Hans Meier,而无需手动更改代码m_Editor.Replace("14;#", ""), m_Editor.Replace("15;#", "")......?

Jon*_*eet 9

听起来你想要一个"至少有一个数字,然后是分号和散列"的正则表达式,并且"仅在字符串的开头"有一个锚点:

string author = Regex.Replace(m_Author, @"^\d+;#", "");
Run Code Online (Sandbox Code Playgroud)

或者使其更具可重用性:

private static readonly Regex IdentifierMatcher = new Regex(@"^\d+;#");
...
string author = IdentifierMatcher.Replace(m_Author, "");
string editor = IdentifierMatcher.Repalce(m_Editor, "");
Run Code Online (Sandbox Code Playgroud)

请注意,在以下情况下可能存在不同的适当解

  • ID可以是非数字的
  • 可能还有其他可忽略的部分,您只需要在最后一个哈希之后的值