c# - 正则表达式删除字符和提供的单词

标签 c# regex

我需要一个只允许字母数字字符并删除某些完整单词的正则表达式。

例子:

输入字符串:this-is-johny-bravo's-grand-dad

结果字符串:johny-bravos-dad

要替换为空字符串的单词/字符:this,is,',grand

这是我目前所拥有的:

var input = "this-is-johny-bravo's-grand-dad";
var regex = new Regex(@"([^a-z0-9\-][\b(this|is|grand)\b]?)");
var result = regex.Replace(input, "");

结果似乎没有撇号但不幸的是仍然包含被拒绝的全词。

最佳答案

您还需要将字符类添加到交替:

new Regex(@"\b(this|is|grand)\b-?|[^a-z0-9-]");

关于c# - 正则表达式删除字符和提供的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19499351/

相关文章:

c# - C++/Cli 向托管 Action<T1,T2> 对象添加回调

c# - 如何创建匿名对象列表

arrays - 基本 perl : regex statement not working in perl 5. 10.1 机器但在 5.18 中工作?

regex - Wiremock withQueryParam 与正则表达式不匹配

c# - 正则表达式允许单个连字符和下划线但不允许在字符串的开头或结尾

c# - 如何在静态类中使用多态或继承?

c# - 使特定列仅接受按键事件中datagridview中的数值

javascript - 替换短语中除破折号之外的所有破折号

javascript - 正则表达式查找 4 个字符的模式

c# - 如何正确地将输入参数传递给 C# 中的事件处理程序方法?