首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >提取3-8位数字和3个字母文本(级联文本)之间的数据的Regex。

提取3-8位数字和3个字母文本(级联文本)之间的数据的Regex。
EN

Stack Overflow用户
提问于 2020-08-31 06:32:15
回答 1查看 757关注 0票数 0

我想使用regex提取3-8位数字和3个字母文本(casplock文本)之间的数据。任何想法都将不胜感激,谢谢。

数据(即字符串)

"06/29/20 B QM 02004946测试住宅按揭TRU

03/10/20 B BC 2440720 BK测试XPN

03/07/20 B QZ 00060298 CPORT RU TRU“

输出应该是:测试房屋抵押贷款,测试的BK和CPORT RU

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-31 06:42:55

也许这个

lookbehind

  • Zero-width正向
  • 零宽正前瞻

更新

代码语言:javascript
运行
复制
var pattern = @"(?<=\d{3,8}\s).*(?=\s[A-Z]{3})";

var input = @"06/29/20 B QM 02004946 MY HELLO WORLD XLS
08/29/20 B QM 0948264 MY UI PATH LMN
08/29/20 B QM 435 MY SAMPLE DATA LMN
06/29/20 B QM 123 MY HELLO WORLD XLS";

var results = Regex
       .Matches(input, pattern, RegexOptions.Multiline)
       .Cast<Match>()
       .Select(x => x.Value);

Console.WriteLine(string.Join(", ", results));

输出

代码语言:javascript
运行
复制
MY HELLO WORLD, MY UI PATH, MY SAMPLE DATA, MY HELLO WORLD

原始

模式

代码语言:javascript
运行
复制
(?<=\d{3,8}\s).*(?=\s[A-Z]{3}$)

使用

代码语言:javascript
运行
复制
var pattern = @"(?<=\d{3,8}\s).*(?=\s[A-Z]{3}$)";

var strings = new List<string>()
{
   "06/29/20 B QM 02004946 MY HELLO WORLD XLS",
   "08/29/20 B QM 0948264 MY UI PATH  LMN",
   "08/29/20 B QM 435 MY SAMPLE DATA   LMN"
};

var results = strings.Select(x => Regex.Match(x, pattern).Value);

foreach (var result in results)
   Console.WriteLine(result);

输出

代码语言:javascript
运行
复制
MY HELLO WORLD
MY UI PATH
MY SAMPLE DATA
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63665879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档