嗨,各位程序员和书呆子们!
创建正则表达式Visual Studio时,如果字符串前面带有逐字标识符(例如@"Some string
),IDE将突出显示该字符串。
(注意字符串高亮显示的方式)我敢肯定,你们大多数人现在已经看过了。
我的问题是:我使用的是从NuGet获得的处理正则表达式的包,它们有一个接收正则表达式字符串的函数,但是它们的函数没有语法突出显示。
正如你所看到的,这使得阅读正则表达式字符串变得很痛苦,我的意思是,这并不太重要,但是如果我们能有视觉上有帮助的突出显示,以减少人们的大脑试图破译表达式所花费的时间和精力,这将是一个很大的不同,特别是在像我这样的情况下,将有相当数量的表达式。
- 问题是**
所以我想知道的是,是否有一种方法可以使函数以这种方式突出显示字符串,或者它只是在IDE中针对Regex c-tor的特定情况而硬连接的东西,是否有某种注解可以附加到函数上,以最小的努力实现这一点,或者是否有必要使用某种扩展?
- 我已经将对
AddStyle()
的调用封装到了我自己的函数中,并且字符串将作为参数传递,因此如果需要进行任何修改来实现语法高亮,可以对我的函数进行修改,因此AddStyle()
函数来自外部库的事实应该是无关紧要的。
如果这是一个很大的工作,那么它不值得我的时间,别人是欢迎开发一个扩展来解决这个问题,但如果有一种方法...
- 重要区别**
请记住,我说的是Visual Studio,* 而不是 * Visual Studio代码。
此外,如果有一种方法可以从Regex中提取原始表达式字符串,我可能会这样做,因为性能在这里不是一个大问题,因为这是一个一次性启动的事情,但是我 * 宁愿 * 不这样做,我实际上不需要Regex对象。
2条答案
按热度按时间mepcadol1#
根据https://devblogs.microsoft.com/dotnet/visual-studio-2019-net-productivity/#regex-language-support和https://www.meziantou.net/visual-studio-tips-and-tricks-regex-editing.htm,您可以使用特殊注解标记字符串以突出显示语法:
或
(the注解可能包含不止此
language=regex
部分)第一个链接的博客谈到了预览,但这个功能也存在于最终产品中。
zengzsys2#
.NET 7引入了新的
[StringSyntax(...)]
属性,在.NET 7中,该属性用于350多个string
、string[]
和ReadOnlySpan<char>
参数、属性和字段,以向感兴趣的工具突出显示期望传递或设置的语法类型。https://devblogs.microsoft.com/dotnet/regular-expression-improvements-in-dotnet-7/?WT_mc_id=dotnet-35129-website&hmsr=joyk.com&utm_source=joyk.com&utm_medium=referral所以对于方法参数,你应该用途:
下面是演示该功能的视频:https://youtu.be/Y2YOaqSAJAQ