gpt4 book ai didi

c# - 正则表达式在第二次出现下划线后匹配下划线之间的单词

转载 作者:行者123 更新时间:2023-12-05 09:28:37 30 4
gpt4 key购买 nike

所以我想在第二次出现下划线后在下划线之间获取单词

这是我的字符串

ABC_BC_BE08_C1000004_0124

我已经组装了这个表达式

(?<=_)[^_]+

很好,它符合我的需要,但只跳过第一个单词,因为它前面没有下划线。我希望它跳过 ABC 和 BC,只获取最后三个字符串,我试过乱搞,但我被卡住了,无法让它工作。谢谢!

最佳答案

您可以在此处使用非正则表达式方法 SplitSkip :

var text = "ABC_BC_BE08_C1000004_0124";
var result = text.Split('_').Skip(2);
foreach (var s in result)
Console.WriteLine(s);

输出:

BE08
C1000004
0124

参见 C# demo .

有了正则表达式,你可以使用

var result = Regex.Matches(text, @"(?<=^(?:[^_]*_){2,})[^_]+").Cast<Match>().Select(x => x.Value);

参见 regex demoC# demo .正则表达式匹配

  • (?<=^(?:[^_]*_){2,}) - 一个积极的后视匹配一个位置,该位置与当前位置左侧的以下模​​式匹配:
    • ^ - 字符串开始
    • (?:[^_]*_){2,} - 两个或多个 ( {2,} ) 任意零个或多个字符的序列,而不是 _ ( [^_]* ) 然后是 _字符
  • [^_]+ - 除_ 以外的一个或多个字符

关于c# - 正则表达式在第二次出现下划线后匹配下划线之间的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71207616/

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