gpt4 book ai didi

c# - 使用正则表达式的简单 C# 分词器

转载 作者:行者123 更新时间:2023-11-30 21:21:15 24 4
gpt4 key购买 nike

我希望标记化非常简单的字符串,但很难获得正确的正则表达式。

字符串可能如下所示:

string1 = "{[Surname]}, some text... {[FirstName]}"

string2 = "{Item}foo.{Item2}bar"

我想提取花括号中的标记(因此 string1 获取 "{[Surname]}","{[FirstName]}" 并且 string2 获取 "{Item} ““{Item2}”)

基本上,我想提取两种不同的标记类型:{[Foo]} 和 {Bar}。

这个问题很好,但我无法正确使用正则表达式: poor mans lexer for c#感谢您的帮助!

最佳答案

他们都是很好的答案,谢谢。这是我最终解决的问题:

// DataToken = {[foo]}

// FieldToken = {Bar}

string pattern = @"(?<DataToken>\{\[\w+\]\})|(?<FieldToken>\{\w+\})";

MatchCollection matches = Regex.Matches(expression.ExpressionString, pattern,
RegexOptions.ExplicitCapture);

string fieldToken = string.Empty;
string dataToken = string.Empty;

foreach (Match m in matches)

{
// note that EITHER fieldtoken OR DataToken will have a value in each loop
fieldToken = m.Groups["FieldToken"].Value;
dataToken = m.Groups["DataToken"].Value;

if (!string.IsNullOrEmpty(dataToken))
{
// Do something
}

if (!string.IsNullOrEmpty(fieldToken))
{
// Do something else
}
}

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

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