【发布时间】:2022-11-20 22:20:04
【问题描述】:
我想使用正则表达式获取 "FileType"。
这是一个示例字符串:
随机名称-id-mininthostname-文件类型_20221118.zip
我试过
(?=-).*(?<=_)但它会返回"-minint-FileType_"
【问题讨论】:
标签: c#
我想使用正则表达式获取 "FileType"。
这是一个示例字符串:
随机名称-id-mininthostname-文件类型_20221118.zip
我试过
(?=-).*(?<=_)但它会返回"-minint-FileType_"
【问题讨论】:
标签: c#
将代表任意数量的任意字符的.*替换为[^-]*,代表除-之外的任意数量的任意字符。或者更好,因为我们想要捕获至少一个字符:[^-]+。
你颠倒了向前看和向后看。我也纠正了这一点。
(?<=-)[^-]+(?=_)
【讨论】:
- 之后,则需要 lookbehind(或捕获组等)。如果 OP 始终希望第一个下划线作为分隔符,则否定字符类也可以是 [^-_]。