gpt4 book ai didi

c# - 简单的C#正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:07 26 4
gpt4 key购买 nike

我有一个正则表达式,我需要针对这样的路径进行匹配:“ C:\Documents and Settings\User\My Documents\ScanSnap\382893.pd~”。我需要一个匹配所有路径的正则表达式,除了以“〜”或“ .dat”结尾的路径。我遇到的问题是我不理解如何仅在路径的末尾匹配和否定确切的字符串'.dat'。也就是说,我不想在路径中的其他地方匹配{d,a,t}

我已经建立了正则表达式,但是不需要匹配.dat

[\w\s:\.\\]*[^~]$[^\.dat]

[\w\s:\.\\]*这将匹配所有单词,空格,冒号,句号和退格键。
[^~]$[^\.dat]$这会导致以'〜'结尾的匹配失败。看来我应该可以对'.dat'进行否定的匹配,但是该匹配在我的正则表达式测试器中失败。

我认为我的答案在于根据我所阅读的内容进行分组,有人会指出我正确的方向吗?我应该补充一点,我正在使用一个允许正则表达式匹配的文件监视程序,我只有一行可以指定正则表达式。

该条目似乎类似:Regex to match multiple strings

最佳答案

您要使用negative look-ahead

^((?!\.dat$)[\w\s:\.\\])*$


顺便说一句,您的字符组( [\w\s:\.\\])不允许在其中使用波浪号(〜)。您是否打算在文件名中不允许波浪号?如果是这样的话:

^((?!~$|\.dat$)[\w\s:\.\\~])*$

关于c# - 简单的C#正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com