regex 匹配字符串,但后面的空格和制表符除外

r8xiu3jd  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(127)

示例字符串,行首为TAB,maxLen = 256;之间为空格或制表符。
我只需要匹配"TABmaxLen = 256"部分,忽略其余部分
maxLen = 256 ; Maximum string size + 1
我的正则表达式由于某种原因不起作用,因为它匹配;之前的所有字符,包括空格和制表符,但我需要忽略;之前的空格和制表符
(\t.*)(?!\s\t);
TABmaxLen = 256只是一个示例,它应该匹配除;后面和结尾的空格和制表符以外的任何内容

    • 编辑:**

更多信息:
这是示例ASM代码,每行,我只想匹配那些有内联注解的行,但只有代码,没有空格和制表符,也没有内联注解。

; a function result to a C + + program.
    option casemap:none
    nl = 10                      ; ASCII code for newline
    maxLen = 256                 ; Maximum string size + 1
    
    .data
    titleStr byte 'Listing 1 - 8', 0

regex应与上述2个示例匹配(包括起始选项卡):

nl = 10
    maxLen = 256
afdcj2ne

afdcj2ne1#

您可以匹配制表符,然后捕获除;之外的任何字符,并匹配结束空格字符,直到;

\t([^\s;][^;]*?)\s*;
    • 说明**
  • \t匹配选项卡
  • (捕获组1
  • [^\s;][^;]*?匹配除;以外的单个非空白字符,然后匹配除;以外的任何非贪婪字符
  • )关闭组1
  • \s*;匹配可选的空白字符,后跟;

参见regex101 demo
另一个选项用于仅匹配和查找,并在末尾Assert1个或多个空白字符,后跟;

(?<=\t)[^\s;].*?(?=\s+;)

查看其他regex101 demo

相关问题