在Visual Studio中的正则表达式无法找到并替换

时间:2018-12-03 10:43:56

标签: regex visual-studio visual-studio-2017

尝试在Visual Studio 2017中使用查找和替换。

它在在线的Regex检查工具上似乎运行良好,但是当我执行“查找”搜索(Ctrl + F)时不能在Visual Studio中工作。

有什么想法可能会这样吗?与标准Regex相比,我在VS中需要做些不同的事情吗?

这是正则表达式:

len()

这是一组示例代码/文本:

([.material\-icons]+[a-z|A-Z|\-|\_]+:+before,)

应该找到

  

.material-icons.three-d-rotation:之前,

  

.material-icons.ac-unit:之前,

1 个答案:

答案 0 :(得分:2)

_\_使.NET regex语法无效之前,必须删除反斜杠。

此外,如果您需要匹配一个字符序列,而不是以任何其他顺序和任何数量匹配字符,则应仅使用这些字符序列,而不必将其放入字符类中。将[.material\-icons]+更改为\.material-icons

请注意,-不在字符类之外([...]之外)。

在字符类中,|与管道字符匹配,它不是OR运算符。因此,您应该将其从[...]中删除。

不需要用括号将整个模式括起来,如果需要用整个匹配项进行替换,请使用$&占位符。

您可以使用

\.material-icons\.[\w.-]+:+before,

enter image description here

详细信息

  • \.material-icons\.-文字.material-icons.文字
  • [\w.-]+-1个或多个字母,数字,_.-
  • :+-冒号1个以上
  • before,-文字子字符串。