Regex 正则表达式似乎忽略了制表符

Regex 正则表达式似乎忽略了制表符,regex,Regex,我有一个正则表达式,它解析驱动程序inf文件中的行,只提取变量名和值,忽略以分号开头的空格和行尾注释 看起来是这样的: "^([^=\s]+)[ ]*=[ ]*([^;\r\n]+)(?<! )" “^([^=\s]+)[]*=[]*([^;\r\n]+)(?这两个[]*只匹配空格字符(U+0020空格),而不匹配其他空格字符。 将两者都更改为[\t]*以匹配选项卡。结果现在如下所示: "^([^=\s]+)[ \t]*=[ \t]*([^;\r\n]+)(?<! )" “^([

我有一个正则表达式,它解析驱动程序inf文件中的行,只提取变量名和值,忽略以分号开头的空格和行尾注释

看起来是这样的:

"^([^=\s]+)[ ]*=[ ]*([^;\r\n]+)(?<! )"

“^([^=\s]+)[]*=[]*([^;\r\n]+)(?这两个
[]*
只匹配空格字符(
U+0020
空格),而不匹配其他空格字符。 将两者都更改为
[\t]*
以匹配选项卡。结果现在如下所示:

"^([^=\s]+)[ \t]*=[ \t]*([^;\r\n]+)(?<! )"

“^([^=\s]+)[\t]*=[\t]*([^;\r\n]+)(?我认为您刚才在错误的部分添加了
\t
制表符

这是您的示例2(不起作用):

^([^=\s]+)[]*=[]*([^;\r\n]+)(?
这是您的示例2…工作(使用选项卡):

^([^=\s]+)[\t]*=[]*([^;\r\n]+)(?
似乎做到了这一点并与您的第一个示例相匹配:

^([^=\s]+)\s*=\s*([^;\r\n]+)(?
试试这个。看演示


这修复了它,但为了一些不同的东西,我在第一部分尝试了“^([^\s]+)=”但它不起作用。我认为“^([^\s]+)=”的意思是“从字符串的开头开始,匹配所有不是空白的内容,直到找到文本“=”?@lembarts
^([^\s]+)=
这不起作用,因为
=
之前有
空间
。因此没有任何东西可以占用空间,因为您已拒绝占用空间。因此它不起作用。
^([^=\s]+)[ ]*=[ ]*([^;\r\n]+)(?<! )
^([^=\s]+)[ \t]*=[ ]*([^;\r\n]+)(?<! )
            ^^ tab here
^([^=\s]+)\s*=\s*([^;\r\n]+)(?<!\s)