代码之家  ›  专栏  ›  技术社区  ›  GoldenAge

使用regex在visual studio代码中每次出现的结尾处添加一个短语,以开头,不以结尾,不包含特殊符号

  •  1
  • GoldenAge  · 技术社区  · 6 年前

    我想构建一个表达式,它返回所有以给定字符串开头但不以给定字符串结尾并包含特殊字符的短语 例子:

    从开始 href=" 不包含 . 而不是以 /

    比赛

    href="blah/foo"
    href="foo"
    

    不匹配

    href="blah/foo.css"
    href="blah/foo.ico"
    href="blah/foo."
    href="blah/"
    href="blah/foo.css/"
    

    我试着做这样的东西 (href=\")^((?!.).)|(?!.*\/$)*$ 但我现在被困住了。

    我也希望能够在每次事件的结尾添加一个短语。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Wiktor Stribiżew    6 年前

    您可以使用

    发现 : (href=")([^".]*[^"./])(")
    替换 : $1$2.html$3

    regex demo

    细节

    • (href=") -第1组 $1 ): href=" 子串
    • ([^".]*[^"./]) -第2组 $2 ):除 " . 后面跟着任何字符,但是 , . /
    • (") -第3组 $3 a) 烧焦。

    VS代码中的测试:

    enter image description here

        2
  •  0
  •   Code Maniac    6 年前

    你可以试试这个伴侣

    href="[^.\s]+?(?!\.)[^\/.]"$
    

    解释

    • href=" -将完全匹配 “=” .
    • [^.\s]+? -将匹配除 . 并留出一个或多个时间(惰性模式)。
    • (?!\.) -展望未来。它检查 . .
    • [^\/.]$ -字符串结尾的检查不应包含 / .

    Demo