Mak*_*nov 2 c# regex exception
我正在尝试编写一些正则表达式模式代码,这些代码将通过使用组删除文本的某些部分。这是代码:
private static string ParseSnippet(string ownitDirectory, string project)
{
Match m = Regex.Match("(" + project + "\\\\.*\\\\)", ownitDirectory, RegexOptions.IgnoreCase);
return m.Groups[1].Value;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我使用的模式导致发生异常。这个例外对我来说没有任何意义。我已经在大量在线测试人员中测试了该模式,但这并没有解决问题。
有人对我应该做什么有任何建议吗?
编辑:
忘了说例外是“十六进制数字不足”
tldr:您最有可能收到错误,因为您的输入中包含“\x”或“\u”,例如目录“c:\xenophobe”或“c:\user...”
根据此页面(http://www.regular-expressions.info/quickstart.html),“\x”用于表示 Unicode 或其他语言集字符。对于 Unicode,"\x{FFFF}" 或 "\uFFFF" 都匹配具有给定十六进制索引的 Unicode 字符。由于 x/u 之后的文件夹名称与十六进制数字的 0-9、af 模式不匹配,并且您的文件夹被用作正则表达式匹配,因此您收到错误消息。任何时候你不小心使用你的字符串作为正则表达式进行比较,你一定会遇到正则表达式解析问题。
| 归档时间: |
|
| 查看次数: |
4453 次 |
| 最近记录: |