gpt4 book ai didi

c# - 在 C# 中提取子字符串的正则表达式

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

我有一个字符串:

 string subjectString = @"(((43*('\\uth\Hgh.Green.two.190ITY.PCV')*9.8)/100000+('VBNJK.PVI.10JK.PCV'))*('ASFGED.Height Density.1JKHB01.PCV')/476)";

我的预期输出是:

Hgh.Green.two.190ITY.PCV
VBNJK.PVI.10JK.PCV
ASFGED.Height Density.1JKHB01.PCV

这是我尝试过的:

 Regex regexObj = new Regex(@"'[^\\]*.PCV");
Match matchResults = regexObj.Match(subjectString);
string val = matchResults.Value;

当输入字符串为:"@"(((43*('\\uth\Hgh.Green.two.190ITY.PCV')*9.8)/100000+"; 但是当字符串增长并且要提取的子字符串数超过 1 时,我得到了不希望的结果。

如何从原始字符串中提取三个子字符串?

最佳答案

您似乎想要匹配 word 和 . .PCV 之前的字符.

使用

[\w\s.]*\.PCV

参见 regex demo

在开始使用时强制至少使用 1 个字符

\w[\w\s.]*\.PCV

可选,如果需要,在开头添加单词边界:@"\b\w[\w\s.]*\.PCV" .

给力\w仅匹配 ASCII 字母和数字(和 _ )用 RegexOptions.ECMAScript 编译正则表达式对象选项。

在这里,

  • \w - 匹配任何字母、数字或 _
  • [\w\s.]* - 匹配 0+ 个空格、单词或/和 .字符
  • \. - 文字 .
  • PCV - 一个 PCV子串。

示例用法:

var results = Regex.Matches(str, @"\w[\w\s.]*\.PCV")
.Cast<Match>()
.Select(m=>m.Value)
.ToList();

关于c# - 在 C# 中提取子字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44583981/

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