写出同时包含abc三个字母(三个字母各出现一次),但不考虑顺序的正则表达式 匹配 不匹配
abcd abdea
acbd bdcc
cab db
abcd abdea
acbd bdcc
cab db
解决方案 »
- C#怎么实现类似Visual studio 停靠窗格
- 关于RDLC报表中数据集使用的作用
- treeview节点的背景颜色
- 关于TreeView的MouseClick焦点问题
- button1的click事件为什么会自己执行两次~?
- asp.net中treeview的最简单问题,求教
- 一维数组与二维数组的GetLength(0)方法
- 关于通过查询sql修改文本文件的问题
- Form1打开Form2和Form3,请问如何点击Form2的按钮Btn2来更改Form3上TxtBox3的值 ?
- 关于axAcroPDF,怎样隐藏其工具栏
- 每当MessageBox.Show(),或出现错误窗口的时候,执行一些操作,行吗?
- 进者有分,明天再加100!! 讨论关于打印机属性问题..
出现多次算不算匹配,如 bccda 算匹配还是不匹配?
改一下就好
using System;
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication67
{
class Program
{
static void Main(string[] args)
{
string a = "abcdefgabc";
Dictionary<string,int> myDictionary=CharAndItsNumber(a);
foreach (KeyValuePair<string, int> kvp in myDictionary)
{ Console.WriteLine(kvp.Key + ":" + kvp.Value);
} }
private static Dictionary<string ,int> CharAndItsNumber(string str)
{
Dictionary<string, int> myDictionary = new Dictionary<string, int>();
int strLength=str.Length;
while (strLength > 0)
{
string firtCharString = str[0].ToString();
str = str.Replace(firtCharString, "");
int CharNumber = strLength - str.Length;
myDictionary.Add(firtCharString, CharNumber);
strLength = str.Length;
}
return myDictionary;
}
}
}
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string[] input = { "abcd", "abdea", "acbd", "bdcc", "cab", "db" };
foreach (string s in input)
{
bool Match = Regex.IsMatch(s, @"a") && Regex.IsMatch(s, @"b") && Regex.IsMatch(s, @"c");
Console.WriteLine("{0}: {1}", s, Match ? "匹配" : "不匹配");
}
}
}
/* 程序输出:
abcd: 匹配
abdea: 不匹配
acbd: 匹配
bdcc: 不匹配
cab: 匹配
db: 不匹配
*/
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string[] input = { "abcd", "abdea", "acbd", "bdcc", "cab", "db", "bccda" };
foreach (string s in input)
{
bool Match = Regex.IsMatch(s, @"a") && Regex.IsMatch(s, @"b") && Regex.IsMatch(s, @"c")
&& !(Regex.IsMatch(s, @"(?s)a.*a") || Regex.IsMatch(s, @"(?s)b.*b") || Regex.IsMatch(s, @"(?s)c.*c"));
Console.WriteLine("{0}: {1}", s, Match ? "匹配" : "不匹配");
}
}
}
/* 程序输出:
abcd: 匹配
abdea: 不匹配
acbd: 匹配
bdcc: 不匹配
cab: 匹配
db: 不匹配
bccda: 不匹配
*/
^(?:[^abc]*a[^abc]*b[^abc]*c[^abc]*|[^abc]*a[^abc]*c[^abc]*b[^abc]*|[^abc]*b[^abc]*a[^abc]*c[^abc]*|[^abc]*b[^abc]*c[^abc]*a[^abc]*|[^abc]*c[^abc]*a[^abc]*b[^abc]*|[^abc]*c[^abc]*b[^abc]*a[^abc]*)$
using System;
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string[] input = { "abcd", "abdea", "acbd", "bdcc", "cab", "db", "bccda" };
string pattern = "^(?:[^abc]*a[^abc]*b[^abc]*c[^abc]*|[^abc]*a[^abc]*c[^abc]*b[^abc]*|[^abc]*b[^abc]*a[^abc]*c[^abc]*|[^abc]*b[^abc]*c[^abc]*a[^abc]*|[^abc]*c[^abc]*a[^abc]*b[^abc]*|[^abc]*c[^abc]*b[^abc]*a[^abc]*)$";
Regex r = new Regex(pattern);
foreach (string s in input)
{
bool Match = r.IsMatch(s);
Console.WriteLine("{0}: {1}", s, Match ? "匹配" : "不匹配");
}
}
}
/* 程序输出:
abcd: 匹配
abdea: 不匹配
acbd: 匹配
bdcc: 不匹配
cab: 匹配
db: 不匹配
bccda: 不匹配
*/
@"([abc])((?!\1)[abc](?!\1))((?!\2)[abc])"
using System.Text.RegularExpressions;class test
{
static void Main()
{
string temp = "123abcefgbcacababc";
Regex rx = new Regex("(abc|acb|bac|bca|cab|cba)");
Match m = rx.Match(temp); while (m.Success)
{
Console.WriteLine(m.Value);
m=m.NextMatch();
}
}
}分点分给我啊~~~
你的结果是对的,但不是我需要的那种形式,我想要的是单个正则表达式
^(?=(.*?a))(?=(.*?b))(?=(.*?c))[a-z]+(?<!(.*?a){2,})(?<!(.*?b){2,})(?<!(.*?c){2,})$
@"([abc])((?!\1)[abc](?!\1))((?!\2)[abc])"
string str1 = "abcd";
string str2 = "acbd";
string str3 = "cab";
string str4 = "abdea";
string str5 = "bdcc";
string str6 = "db";
Regex rx = new Regex(@"([abc])((?!\1)[abc](?!\1))((?!\2)[abc])");
ggg+=rx.IsMatch(str1).ToString();
ggg+=rx.IsMatch(str2).ToString();
ggg+=rx.IsMatch(str3).ToString();
ggg+=rx.IsMatch(str4).ToString();
ggg+=rx.IsMatch(str5).ToString();
ggg+=rx.IsMatch(str6).ToString();最后ggg=TrueTrueTrueFalseFalseFalse
单个正则:
^(?:[^abc]*a[^abc]*b[^abc]*c[^abc]*|[^abc]*a[^abc]*c[^abc]*b[^abc]*|[^abc]*b[^abc]*a[^abc]*c[^abc]*|[^abc]*b[^abc]*c[^abc]*a[^abc]*|[^abc]*c[^abc]*a[^abc]*b[^abc]*|[^abc]*c[^abc]*b[^abc]*a[^abc]*)$
好长啊!
@"([abc])((?!\1)[abc](?!\1))((?!\2)[abc])"
三个字母只能出现一次
@"^[^abc]*([abc])[^abc]*((?!\1)[abc])[^abc]*((?!\1)(?!\2)[abc])[^abc]*$"