如何在Visual Studio中用正则表达式匹配完整单词后接左括号
解决Visual Studio中匹配完整单词加左括号的正则问题
这个问题我之前也踩过坑——Visual Studio用的是.NET正则引擎,和Sublime默认的PCRE引擎行为确实不一样,直接用\w+\(会匹配到所有符合“单词字符+左括号”的子串,而不是仅完整单词开头的部分。
核心解决方案:添加单词边界\b
只需要给正则加上单词边界锚定,就能实现和Sublime一致的匹配效果,最终正则表达式为:
\b\w+\(
为什么这样有效?
\b是正则中的单词边界匹配符,它会匹配两种位置:- 单词字符(
\w,即字母、数字、下划线)和非单词字符(比如空格、标点)之间的分界 - 字符串开头/结尾与单词字符的分界
- 单词字符(
- 加上
\b后,\w+\(就只能从完整单词的起始位置开始匹配,不会再从单词中间的字符(比如code(里的o、d)开始匹配子串了。
测试验证
针对你的示例文本:
this is a sample of code() not real(), only for demostration() purpose
使用\b\w+\(在Visual Studio中匹配,会精准得到:code(、real(、demostration(,和Sublime的匹配结果完全一致。
额外适配场景
如果你的单词不需要包含下划线(\w默认包含下划线),可以把\w替换成字母数字的集合,正则改为:
\b[A-Za-z0-9]+\(
内容的提问来源于stack exchange,提问作者Erick Asto Oblitas
相关产品推荐
相关产品推荐

