【问题标题】:Regex to match any character excluding \ [duplicate]正则表达式匹配除 \ [重复] 之外的任何字符
【发布时间】:2016-12-21 17:43:45
【问题描述】:

给定字符串 \\Server\Folder\File.EXT,返回 \\Server\ 作为匹配项的正则表达式是什么?我试过^\\\\(.*)\\,但这仍然允许在匹配中间使用反斜杠,所以我得到 \\Server\Folder\ 作为匹配项,而不是 \\Server\强>。在组中,我需要匹配除 \ 之外的任意数量的字符。

【问题讨论】:

    标签: regex


    【解决方案1】:

    在您的正则表达式中使用 negated character class 而不是 .

    ^\\\\([^\\]*)\\
    

    或使用? 使其成为non-greedy

    ^\\\\(.*?)\\
    

    【讨论】:

    • 啊哈,我只是在后面尝试否定,而不是在前面。而且,好奇,因为这两种方法都有效,在这种情况下,一种方法优于另一种方法吗?还是它们都同样有效?
    • 嗯,那里有两个答案。 ^\\\([^\]*)\\ 有效,^\\\(.*?)\\ 也有效。后者,“使它不贪婪”的解决方案似乎是更好的方法,但我不知道足够确定。而且假设的重复答案似乎也不能真正解释功能上的差异。
    猜你喜欢
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 2016-05-05
    • 1970-01-01
    相关资源
    最近更新 更多