规则:包含“有真相”不包含“无图”
如:无图adfadfdf有真相 不匹配
有真相adfadfadf无图 不匹配
adfadfad有真相asdfjaljda 匹配
如果在上面的规则再加上必须包含“有钱人”呢?
请教正则表达式怎么写
C#?Js?Java?DB?
语言是:C#
@火悬崖:
1 public string ExactMatch(string input) 2 { 3 string result; 4 bool contains = Regex.IsMatch(input, "有真相"); 5 bool contains1 = Regex.IsMatch(input, "无图"); 6 if (contains&&!contains1) 7 { 8 result = "匹配"; 9 } 10 else 11 { 12 result = "不匹配"; 13 } 14 return result; 15 } 16 17
写了个Demo看下是不是你想要的哈
@~扎克伯格:你好 看了你的demo 发现我的问题描述有点问题 抱歉哈 问题描述已经修改了 还得麻烦你看下。
@火悬崖: 已更新Demo!您可以再看下,不谢
@~扎克伯格: 能不能把“有真相”“无图”写成一个正则表达式呢
@火悬崖: 您好!正则表达式自身语法糖可以验证字母,数字,邮箱等是否合法!是不可以直接用正则表达式写特定的字符串的。
你这个是字符串包含问题吧。能用正则吗?
想用正则实现 ,目前还没有写出正则表达式。。。
@火悬崖: ^[^(无图)]*有真相[^(无图)]*$ 这个试一下
@授之以渔: 这个可以实现当前的问题 如果规则改成包含“有真相”“有钱人”不能包含“无图” 呢?
@火悬崖: 正则表达式是顺序匹配的。你只能把这几个字符串组合好几种类型,再连在一起的。其实你这个问题就不适合用正则,只需要使用字符串的包含函数处理就可以了。
正则表达式支持中文吗?
是支持中文的
@火悬崖: 正则表达式不支持and
@悦光阴: 正则不支持and???
@Daniel Cai: 正则支持或,有and,或非的逻辑吗
@悦光阴: 正则中and不像or是显式,and是隐式支持的
(?=CONDITION1)(?=CONDITION2)
@Daniel Cai: 这个有先后顺序,可能我说的有歧义,无顺序的and是不支持的
@悦光阴:
the quick brown fox jumps over the lazy dog
(?=.*lazy)(?=.*fox).*
1. Regex reg = new Regex("有真相(?!.+无图)");
包含“有真相”“有钱人”不能包含“无图”
2. Regex reg = new Regex("(有真相(?!.+无图)|有钱人(?!.+无图))");
额 测试了一下 Regex reg = new Regex("(有真相(?!.+无图)|有钱人(?!.+无图))"); 这个不能用
“有钱人”“有真相”“无图”是没有顺序关系的
@火悬崖: 根据实际需求,变通一下就能用了。