【发布时间】:2021-04-14 20:05:05
【问题描述】:
我有一个与正则表达式匹配的字符串,但相同的字符串在前面用 # 符号注释掉,正则表达式继续匹配我不想要的。
我的正则表达式
BLTY:\w{8}:\w{8}:\w{5}\.\w{7}\.\w{1}\.\w{3}\/\w{3}\/.*\(\w{4}\)
字符串
BLTY:ENCQ0000:SERVER:TEMP.PPMQ8FE.Y.323/TCP/gtg23.dev.pmt.com(3213)-> only match this
#BLTY:ENCQ0000:SERVER:TEMP.PPMQ8FE.Y.323/TCP/gtg23.dev.pmt.com(3213) -> I dont want to match this
试过
^[BLTY:\w{8}:\w{8}:\w{5}\.\w{7}\.\w{1}\.\w{3}\/\w{3}\/.*\(\w{4}\)]
^BLTY:\w{8}:\w{8}:\w{5}\.\w{7}\.\w{1}\.\w{3}\/\w{3}\/.*\(\w{4}\)
(?!#)BLTY:\w{8}:\w{8}:\w{5}\.\w{7}\.\w{1}\.\w{3}\/\w{3}\/.*\(\w{4}\)
另外,如果有一种不那么冗长/优化的方式来编写这个正则表达式,我愿意听
【问题讨论】:
-
如何从 PowerShell 调用这个正则表达式?这会有所不同,尤其是在使用多行字符时 (
^$)
标签: regex powershell regex-negation