nanoFramework.System.Text.RegularExpressions 1.1.51
前缀已保留
dotnet add package nanoFramework.System.Text.RegularExpressions --version 1.1.51
NuGet\Install-Package nanoFramework.System.Text.RegularExpressions -Version 1.1.51
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块版本的 Install-Package。
<PackageReference Include="nanoFramework.System.Text.RegularExpressions" Version="1.1.51" />
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用包。
paket add nanoFramework.System.Text.RegularExpressions --version 1.1.51
NuGet 团队不提供对此客户端的支持。请联系其 维护者 寻求支持。
#r "nuget: nanoFramework.System.Text.RegularExpressions, 1.1.51"
#r 指令可用于 F# Interactive 和多语言笔记本。请将此复制到交互式工具或脚本的源代码中以便引用包。
// Install nanoFramework.System.Text.RegularExpressions as a Cake Addin #addin nuget:?package=nanoFramework.System.Text.RegularExpressions&version=1.1.51 // Install nanoFramework.System.Text.RegularExpressions as a Cake Tool #tool nuget:?package=nanoFramework.System.Text.RegularExpressions&version=1.1.51
NuGet 团队不提供对此客户端的支持。请联系其 维护者 寻求支持。
欢迎使用 .NET nanoFramework System.Text.RegularExpressions 存储库
构建状态
组件 | 构建状态 | NuGet 包 |
---|---|---|
System.Text.RegularExpressions |
重要:此正则表达式解析器将涵盖您的大部分需求。当模式复杂且不全面兼容时,它有一些限制。这是一个持续的工作,主要基于 .NET 微型框架实现。如有任何问题,请不要犹豫提出。也欢迎任何帮助改进此解析器的建议。
在 测试 中,您将找到高级测试,到目前为止只有一个失败。帮助固定解析器所需的!
用法
与完整框架的兼容性很高。《Match》和《Group》类的工作方式与您预期的一样。以下示例给出了一些用法示例
// The example displays the following output:
// Match: This is one sentence.
// Group 1: 'This is one sentence.'
// Capture 1: 'This is one sentence.'
// Group 2: 'sentence'
// Capture 1: 'This '
// Capture 2: 'is '
// Capture 3: 'one '
// Capture 4: 'sentence'
// Group 3: 'sentence'
// Capture 1: 'This'
// Capture 2: 'is'
// Capture 3: 'one'
// Capture 4: 'sentence'
string pattern = @"(\b(\w+?)[,:;]?\s?)+[?.!]";
string input = "This is one sentence. This is a second sentence.";
Match match = Regex.Match(input, pattern);
Debug.WriteLine("Match: " + match.Value);
int groupCtr = 0;
foreach (Group group in match.Groups)
{
groupCtr++;
Debug.WriteLine(" Group " + groupCtr + ": '" + group.Value + "'");
int captureCtr = 0;
foreach (Capture capture in group.Captures)
{
captureCtr++;
Debug.WriteLine(" Capture " + captureCtr + ": '" + capture.Value + "'");
}
}
另一个使用 Split
的示例
regex = new Regex("[ab]+");
acutalResults = regex.Split("xyzzyababbayyzabbbab123");
for (int i = 0; i < acutalResults.Length; i++)
{
Debug.WriteLine($"{acutalResults[i]}");
}
// The results will be:
// xyzzy
// yyz
// 123
您还可以使用 Replace
函数
regex = new Regex("a*b");
actual = regex.Replace("aaaabfooaaabgarplyaaabwackyb", "-");
Debug.WriteLine($"{actual}");
regex = new Regex("([a-b]+?)([c-d]+)");
actual = regex.Replace("zzabcdzz", "$1-$2");
Debug.WriteLine($"{actual}");
// The result will be:
// -foo-garply-wacky-
// zzab-cdzz
下一个示例显示了使用选项的可能性
regex = new Regex("abc(\\w*)");
Debug.WriteLine("RegexOptions.IgnoreCase abc(\\w*)");
regex.Options = RegexOptions.IgnoreCase;
if (regex.IsMatch("abcddd"))
{
Debug.WriteLine("abcddd = true");
}
regex = new Regex("^abc$", RegexOptions.Multiline);
if (regex.IsMatch("\nabc"))
{
Debug.WriteLine("abc found!");
}
// The result will be:
// abcddd = true
// abc found!
经过验证的正则表达式
测试中您会发现使用了某些正则表达式。这些或许会很有用
- 电子邮件地址:
([\w\d_.\-]+)@([\d\w\.\-]+)\.([\w\.]{2,5})
- http(s) URL:
(https?:\/\/)([\da-z-._]+)/?([\/\da-z.-]*)
(限制:URL必须以“/”结尾才能正确提取,这是我们的引擎中的一个bug,它在与“^”和“$”之间的表达式之间运行得非常好) - MD5:
[a-f0-9]{32}
- SHA256:
[A-Fa-f0-9]{64}
- 简单的XML标签:
<tag>[^<]*</tag>
- GUID:
[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?
- 日期时间如
2021-04-10 18:08:42
:(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})
已知限制
此解析器是简单的,这些元素中的一些不受支持
- 如
(?<word>\w+)
之类的表达式将不会工作。虽然支持分组,但名称化组或元素前的?
不受支持。 - 对于某些字符,当使用转义版本如
\.
时,您可能遇到问题,可以使用.
代替。 - 有时字符的顺序可能会产生影响。如果您在这种情况下,请尝试在字符类如
[a-z-._]
中更改字符的顺序。
反馈和文档
有关文档、提供反馈、问题和技术支持,请参阅主仓库。
加入我们的Discord社区这里。
致谢
该项目贡献者名单可在CONTRIBUTORS中找到。
许可证
nanoFramework 类库遵循MIT许可证。
请检查此存储库中文件的标题,部分代码受Apache License 2.0许可。
行为准则
此项目已采纳贡献者公约中定义的行为准则,以阐明社区中的预期行为。有关更多信息,请参阅.NET Foundation行为准则。
.NET Foundation
此项目由.NET Foundation支持。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET Framework | net是兼容的。 |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.System.Collections (>= 1.5.31)
- nanoFramework.System.Text (>= 1.2.54)
NuGet 包 (2)
显示依赖于 nanoFramework.System.Text.RegularExpressions 的顶部 2 个 NuGet 包
包 | 下载 |
---|---|
DevBot9.NanoFramework.Homie
为 nanoFramework 实现的 Homie。 |
|
DevBot9.NanoFramework.Homie.Utilities
为 nanoFramework 实现的 Homie。 |
GitHub 存储库
此包不在任何流行的 GitHub 存储库中。
版本 | 下载 | 最后更新 |
---|---|---|
1.1.51 | 449 | 11/9/2023 |
1.1.37 | 760 | 12/28/2022 |
1.1.26 | 486 | 10/26/2022 |
1.1.24 | 385 | 10/25/2022 |
1.1.22 | 373 | 10/24/2022 |
1.1.20 | 396 | 10/23/2022 |
1.1.14 | 449 | 9/16/2022 |
1.1.9 | 516 | 8/11/2022 |
1.1.7 | 474 | 6/10/2022 |
1.1.3 | 428 | 5/2/2022 |
1.0.5-preview.3 | 170 | 1/4/2022 |
1.0.4 | 308 | 12/3/2021 |
1.0.4-preview.16 | 140 | 12/3/2021 |
1.0.4-preview.14 | 135 | 12/3/2021 |
1.0.4-preview.12 | 136 | 12/2/2021 |
1.0.4-preview.10 | 139 | 12/2/2021 |
1.0.4-preview.8 | 129 | 12/2/2021 |
1.0.4-preview.1 | 160 | 8/2/2021 |
1.0.3 | 320 | 8/2/2021 |
1.0.3-preview.4 | 152 | 8/2/2021 |
1.0.2 | 1,008 | 7/16/2021 |
1.0.0-preview.33 | 173 | 7/16/2021 |
1.0.0-preview.28 | 176 | 6/1/2021 |
1.0.0-preview.24 | 165 | 4/10/2021 |
1.0.0-preview.22 | 146 | 3/31/2021 |
1.0.0-preview.21 | 185 | 3/26/2021 |
1.0.0-preview.20 | 192 | 3/26/2021 |