我有一个字符串行
"Arvydas,(g. 1964 m. gruodžio 19 d. Kaune) – Lietuvos krepšininkas,"
我需要删除由Console.ReadLine()决定的特定单词以及其后跟的特殊字符-字符串行中的“。,!?:;()'”
string word = Console.ReadLine();
string text = "Arvydas,(g. 1964 m. gruodžio 19 d. Kaune) – Lietuvos krepšininkas,";
Regex.Replace(text, " ", ".,!?:;()'" );
答案 0 :(得分:0)
首先,要测试您的正则表达式:https://regex101.com/r/WDOqRc/2
然后代码变为:
string word = Console.ReadLine();
string text = "Arvydas,(g. 1964 m. gruodžio 19 d. Kaune) – Lietuvos krepšininkas,";
text = Regex.Replace(text, $"{word}[.,!?:;()']?", String.Empty);
答案 1 :(得分:0)
让我们摆脱特殊字符(我建议特殊字符是 any ,除了 letter , digit 或撇号 >):
string text = "Arvydas,(g. 1964 m. gruodžio 19 d. Kaune) – Lietuvos krepšininkas,";
// Arvydas g 1964 m gruodžio 19 d Kaune Lietuvos krepšininkas
string result = Regex.Replace(text, @"[\W-[']]+", " ");
然后删除word
:
string word = "Kaune";
// removing word
result = Regex
.Replace(result, "\\b" + Regex.Escape(word) + "\\b", " ", RegexOptions.IgnoreCase);
// removing double spaces if any
result = Regex
.Replace(result, "\\s{2,}", " ");
Console.WriteLine(result);
结果:
Arvydas g 1964 m gruodžio 19 d Lietuvos krepšininkas
或将其包装到例程中
string word = Console.ReadLine();
string text = "Arvydas,(g. 1964 m. gruodžio 19 d. Kaune) – Lietuvos krepšininkas,";
string text = Regex.Replace(text, @"[\W-[']]+", " ");
if (!string.IsNullOrWhiteSpace(word)) {
text = Regex
.Replace(text, "\\b" + Regex.Escape(word) + "\\b", " ", RegexOptions.IgnoreCase);
text = Regex
.Replace(text, "\\s{2,}", " ");
}