快速提问:
我有这个字符串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;#", "")......?
听起来你想要一个"至少有一个数字,然后是分号和散列"的正则表达式,并且"仅在字符串的开头"有一个锚点:
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)
请注意,在以下情况下可能存在不同的适当解