Csharp/C#教程:正则表达式查找字符串中的任何字母排列分享


正则表达式查找字符串中的任何字母排列

我有这个正则表达式:

([abc])(?!1)([abc])(?!2|1)([abc]) 

在给定的字符串中找到“abc”(abc,acb,bac,bca,cab和cba)的任何排列,例如:

  aabbccabcabbccaassbbsdddbbsbdbabc 

那个正则表达式运行良好,但是现在我需要另一个正则表达式来做同样的但是所有的排列没有重复“abbc”(12种组合)

我需要在一个字符串中找到4个字符,其中包含一个“a”,两个“b”和一个“c”。 无论顺序如何,都必须连续。 (abbc,babc,bbca …)

我的问题与建议的问题不同,因为它有一个必须重复2次的角色

  1. Find [abc] 2. Find "a" or "c" if it is not in 1. Find "b" 3. Find "a" or "c" if it doesn't appear in 1. or 2. Find "b" if it is not alreday 2 times 4. Find "a" or "c" if it doesn't appear in 1. or 2 or 3. Find "b" if it is not alreday 2 times 

C#regex有一个称为平衡组的function,可用于计数。

你可以使用这个正则表达式( Regex Storm的工作示例 ):

 (?:(?a)|(?b)|(?c)){4}(?<-A>)(?<-B>){2}(?<-C>) 

如果正则表达式引擎无法从堆栈中弹出,则匹配失败,因此这为我们提供了一种计算匹配字符的简便方法。

还有其他方法,包括可以在其他正则表达式(其他语言)中使用的方法,但是这种方法有一个好处,它可以很好地扩展并且没有重复:如果你想要7个字符,即4 A ,2 B和1 C ,这是一个微不足道的变化。

上述就是C#学习教程:正则表达式查找字符串中的任何字母排列分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/988788.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐