我正在尝试编写一个正则表达式,它将检测以下类型的注释:
#
开头并一直持续到行尾 #
( \#
) 作为普通文本(因此,如果它不是一个评论,它不会在它后面做任何评论)使用 this tool ,我想出了以下正则表达式来实现这一点:
(?!\\)(#(.*)\n)
在全局模式下使用它,我在以下输入文本上对其进行了测试,这是不言自明的:
#This comment should be caught, and any embedded #s or escaped \#s should also be
While none of this line this should be \#\#\#
现在,该正则表达式的匹配项是:
#
但不包括 \
在它之前 显然,这太多了 - 第二行上的任何内容都不应被捕获。我应该改变什么才能让它按照我想要的方式工作?
最佳答案
使用这个正则表达式:
(?<!\\)#.*
说明
(?<!\\)
断言前面的不是反斜杠。 #
匹配一个哈希 .*
匹配到行尾 查看 中的匹配项Regex Demo
引用
关于正则表达式匹配 #Comment 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24924496/