c# - 正则表达式替换特殊字符

标签 c# regex

我的正则表达式需要帮助。

我需要删除文本开头的特殊字符

比如我有这样一段文字

.just a $#text this should not be incl#uded

输出应该是这样的

just a text this should not be incl#uded

I've been testing my regex here but i can't make it work

([\!-\/\;-\@]+)[\w\d]+

如何限制正则表达式只检查以特殊字符开头的文本?

谢谢

最佳答案

使用\B[!-/;-@]+\s*\b:

var result = Regex.Replace(s, @"\B[!-/;-@]+\s*\b", "");

参见 regex demo

详情

  • \B - 单词边界以外的位置(当前位置左侧必须有字符串开头或非单词字符)
  • [!-/;-@]+ - 1 个或多个 ASCII 标点符号
  • \s* - 0+ 个空白字符
  • \b - 单词边界,当前位置的右边必须有一个字母/数字/下划线。

如果您打算删除所有标点符号,请使用

var result = Regex.Replace(s, @"\B[\p{P}\p{S}]+\s*\b", "");

参见 another regex demo .

请注意,\p{P} 匹配任何标点符号,\p{S} 匹配任何符号。

关于c# - 正则表达式替换特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49808201/

相关文章:

c# - 另一个锁定问题

c# - 如何循环比较两个文本文件中的数百万个值?

java spring模式匹配字符串

c# - 将一个控件拖放到winform中的另一个控件

c#限制消息框的数量

html - 没有适用于 'xpathApply' 的方法应用于类 "NULL"的对象

javascript - 不区分大小写的正则表达式快速检查

regex - Notepad++ RegEx 删除括号内的文本(包括中括号)

c# - Blazor 更改验证默认 CSS 类名称

javascript - 在正则表达式中,当字符不在其他字母字符中时如何查找和替换字符?