查找字符串c#中的所有子字符串(正则表达式,字符数组?)

管道

我需要识别在字符串中找到的子字符串,例如:

“ CityABCProcess测试”或“ cityABCProcess测试”

产生:[“城市/城市”,“ ABC”,“过程”,“测试”]

  1. 子字符串中的第一个字符串可以是小写或大写
  2. 具有重复的大写字母的任何子字符串将一直是一个子字符串,直到找到小写字母或空格为止“ ABCProcess-> ABC,ABC Process-> ABC”
  3. 如果后面紧跟着一个大写字母,则该子字符串将是所有内容,直到下一个大写字母为止。

可以由正则表达式处理吗?还是应该将字符串转换为字符数组,并使用一些索引逻辑手动检查这些情况。Lambda解决方案在这里可以工作吗?最好的方法是什么?

史蒂文·多格特

不用注意反对者!即使这样,RegEx也不是那么复杂。我相信这种模式应该可以解决问题:

[AZ] [az] + | [AZ] + \ b | [AZ] +(?= [AZ])| [az] +

请参见此处获取有效的演示。它只是OR按顺序处理的一堆细目如下:

  • [A-Z][a-z]+ -任何以大写字母开头,然后是所有小写字母的单词
  • [A-Z]+\b -所有大写字母的单词(以便包括最后一个大写字母,该字母将在以下选项中排除)
  • [A-Z]+(?=[A-Z]) -所有大写字母的单词,但不包括下一个单词的第一个大写字母
  • [a-z]+ -所有大写的单词

例如:

string input = "CityABCProcess TEST";
StringBuilder builder = new StringBuilder();
builder.Append("[A-Z][a-z]+");
builder.Append("|");
builder.Append("[A-Z]+$");
builder.Append("|");
builder.Append("[A-Z]+(?=[A-Z])");
builder.Append("|");
builder.Append("[a-z]+");
foreach (Match m in Regex.Matches(input, builder.ToString()))
    {
    Console.WriteLine(m.Value);
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找字符串中的所有大写字母-正则表达式C#

用正则表达式查找字符串中的所有字母

使用正则表达式查找字符串中的所有匹配项

使用正则表达式查找字符串中的所有匹配项

正则表达式:在不同的字符串变体中查找字符串

PHP正则表达式-在字符串中查找字符串

正则表达式以所有顺序查找字符串

正则表达式:查找文本中的所有子字符串

使用正则表达式查找字符串中是否存在子字符串之一

如何在 Dart 中使用正则表达式查找字符串中的子字符串

使用正则表达式查找字符串中的子词

PHP:使用正则表达式查找字符串中的数组模式

在 C# 中使用正则表达式查找字符串中的所有电子邮件地址

使用正则表达式在c#中查找子字符串

通过正则表达式查找字符串中的所有电话号码

使用正则表达式查找字符串中不包含特定字母的所有单词

Python-正则表达式查找字符串中的所有匹配项并替换

使用Javascript以任意顺序使用正则表达式查找字符串中的所有匹配项

使用Java正则表达式查找字符串中的所有<a href> link </a>

在使用C#使用正则表达式查找字符串模式中需要帮助

使用正则表达式查找字符串中的确切字符

从C#中的正则表达式返回所有匹配的字符串集合

使用正则表达式从复杂字符串中查找子字符串

正则表达式查找所有子字符串和最长子字符串

给定超字符串正则表达式,查找字符串的值

在Swift中使用正则表达式查找字符串的子字符串

需要正则表达式来查找特定模式的所有子字符串

尝试使用正则表达式在字符串数组中查找子字符串的url

C#正则表达式从字符串中提取子字符串