我想从C#中的字符串替换特定的子字符串。替换特定的字符串C#?
我的字符串是:This is a car.
,我试图从这个串码 'A' 用的String.Empty替换:
data = data.Replace("a", string.Empty);
但我的输出是:
This is c r.
我只是想删除孤立的'a'的发生,而不是当这个字/字用于其他一些字(如汽车)。
我要像一部份输出:This is car.
我怎样才能做到这在C#?
我想从C#中的字符串替换特定的子字符串。替换特定的字符串C#?
我的字符串是:This is a car.
,我试图从这个串码 'A' 用的String.Empty替换:
data = data.Replace("a", string.Empty);
但我的输出是:
This is c r.
我只是想删除孤立的'a'的发生,而不是当这个字/字用于其他一些字(如汽车)。
我要像一部份输出:This is car.
我怎样才能做到这在C#?
您需要一个正则表达式模式,它只能匹配单词边界上的“a”。 "\b"
在正则表达式表示字边界:
Regex.Replace("this is a car", @"\ba\b", "")
如果你想匹配大写字母“A”,以及,确保你的模式是不区分大小写(RegexOptions.IgnoreCase
)或明确将“A”添加到图案像"\b[Aa]\b"
。
这会在给定的测试用例中留下两个相邻的空格。 –
@WizardofOgz它的行为与编写的代码类似。当然,该行与输出不匹配,所以我不确定期望的行为究竟是什么。 –
谢谢!有效。 – Arry
改为搜索字符串“a”,并用空格替换以保持句子结构正确;
data = data.Replace(" a ", " ");
也搜索空间。
data = data.(" a ", " ")
有人不同意这个答案显然 –
是的,看到四个人在几秒钟内拍摄相同的单行内容很有趣,但所有人在同一时间投下的票更加搞笑 – Christoffer
请参阅@Zdravko Danev,了解您的解决方案未涵盖的情况。 – mbeckish
您可以使用正则表达式并限制为符合条件的单词“a”的实例。
string input = "This is a car. A thing to watch out for.";
string output = Regex.Replace(input, "\ba\b", "");
//Results in "This is car. A thing to watch out for."
您还可以添加一个字符类来处理大写和小写以及任何其他字符。恩。 \ S [AA] \ S
的\ s表示任何空白字符
你能用一个例子来解释一下吗? – Arry
你是什么意思与 '隔离occurence'?它是也许这样的事情你真的后:
data.Replace(" a ", " ");
你需要做几个不同的情况,但可以肯定的是可能的:
一个在句首“A车流逝 “ - > s.StartsWith( ”A “)
一个中间 ”这是一辆“ - >替换(” A“,”“)
您忘记了字符串以'a'结尾的情况,这是必需的,因为要替换的字符串有一个尾部空格:-) – Christoffer
这是可以接受的解决方案,但似乎并不是一个很好的方法。有没有更好的方法来实现这一目标? 感谢您的回答! – Arry
@Arry--你不喜欢Mehrdad Afshari的解决方案吗? – mbeckish
哇,许多热门的触发器人:-) – Christoffer