是否能用正则实现判断一段字符串中包含某个子串且不包含另一个子串?

就是一段字符串要同时满足这两个条件才能匹配上:
1、包含“abc”或“def”
2、不包含“gh”
这种有办法用正则实现吗?

10个回答

^(?!.*gh).*(abc|def) 
Anoth
Anoth 已经自己找到了,可惜最后lucence并不支持?!这种规则
大约一年之前 回复
jslang
天际的海浪 如果字符串中有\n换行的话,要把.*改为[\s\S]*
大约一年之前 回复

直接用字符串函数不就行了,图片说明

正则很强大,你这需求肯定能实现的

用字符串函数吧。正则表达式在这个上面用起来不是很方便,但是可以实现

  1. 常见函数 strstr($str, "abc"); 2. 正则匹配 preg_match("/(abc)/is", $str); 但是要匹配一个字符串中,不包含某字符串,用正则就比较麻烦了。
  2. 如果不用正则如下就可以解决问题 !strstr($str, "abc"); 2. 但是用正则呢,就只有这样了 preg_match("/^((?!abc).)*$/is", $str); 完整代码示例 $str = "dfadfadf765577abc55fd"; $pattern_url = "/^((?!abc).)*$/is"; if (preg_match($pattern_url, $str)) { echo "不含有abc!"; } else { echo "含有abc!"; } 结果为:false,含有abc!

上面写错^((?!gh).)*abc((?!gh).)*$

完整写法^((?!gh).)*(abc|def)((?!gh).)*$

indexof() == -1 代表不包含

 ^((?!.*gh).)*(abc|def) .*$

测试三段:
1. I like abc
2. I like def
3.I like abc and gh

修正:(之前多了个空格)

^((?!.*gh).)*(abc|def).*$ 

测试三段:
1. I like abc
2. I like def
3.I like abc and gh

weixin_42695878
weixin_42695878 @qAnoth 答案是否合意,想下载个东西,急需你宝贵的C币
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在一段字符串中,查找是否包含某个子串。怎么写??
在一段字符串中,查找是否包含某个子串。怎么写??rnrn找到YUNA返回真,没找到返回假。怎么写?rnrnstring str = "asdfasdfasfdasYUNAdfasdf";rn
如何判断一个字符串中是否包含另一个子串?
是否存在有判断一个字符串中是否包含另一个字符串,我只需要返回true or false,不需要具体位置。rnpos好象返回的是子串在母串中的位置,如果母串不包含子串,好像会报错。rn请指教!谢谢
bat 判断字符串是否包含指定子串
@echo %PATH% | findstr /c:"D:\ProgramFiles\Microsoft Visual Studio 9.0\Common7\IDE">nul@if %errorlevel% equ 1 set PATH=%PATH%;D:\ProgramFiles\Microsoft Visual Studio 9.0\Common7\IDE
判断字符串是否包含子串 python
import refile_txt = open(filepath, 'r', encoding='utf-8') lines= file_txt .readlines() print(lines) for line in lines: language = str(line) print(re.findall(r"[\u4e00-\u9fa5]", language))
判断一个字符串是否包含一个子串
java判断: indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。 public static void main(String[] args) {  String str="ABC_001";  if(str.indexOf("ABC")!=-1){   System.out.println("包含");  }els
string里find()函数,判断字符串是否包含某个子串
使用 string 的 find 成员函数。 #include #include using namespace std; int main() { string str = "afdsdfs_hello_sdfas#@!"; string str1 = "hello"; string::size_type idx = str.find( str1 ); if ( idx != stri
Java——给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.
引入包:import java.util.Scanner; main函数: public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入字符串"); String strIn= s.nextLine(); System.out.println("请输入子串"...
给定一个字符串,判断该字符串中是否包含某个子串.如果包含, 求出子串的所有出现位置
public class IfSubstring { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入长字符串:"); String ss = scanner.next(); System.out.printl...
如何判断字符串中是否包含指定字符或子串?
在C++中字符串类有find方法可以解决此问题,翻了半天java api也没找到类似C++中find的方法,故在此发贴求助。先谢过了。
SQL Server中判断字符串是否包含指定的子串
怎么判断一个表中的记录是否包含在另一个表的记录中rn如表a 字段rn ProductsModelrn 记录 larn如表b 字段rn ProductsModelrn 记录 la、lbrn上面是包含的。
判断字符串中是否包含某一字符子串
Delphi中是否有判断字符串中是否包含某一字符子串的函数?rn例如检查String='kjkjkhjkhjk;"' 中是否包含子串"k;"
正则判断一个字符串中是否包含另一个字符串
现在有一个字段存放的是正文,客户会从word文档中复制粘贴过来。这样的正文就会出现下面这种无用的字符串rn我现在想判断如果出现以下字符串就过滤掉。rnrn开始不多我用的是多个replace替换掉,但发现不同的情况挺多的,也不可能一直加replacern我现在找了其中几个看看有没有高手能用正则去匹配然后过滤?rnrnMicrosoftInternetExplorer4rnNormal07.8磅02falsefalsefalseEN-USZH-CNX-NONEMicrosoftInternetExplorer4rnMicrosoftInternetExplorer402DocumentNotSpecified7.8磅Normal0rnNormal07.8磅02falsefalsefalseMicrosoftInternetExplorer4rnMicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0
判断某个字符串中是否包含另一个字符串
if([@"afjlajflasjlfkajsldkfj" rangeOfString:@"kjf"].location !=NSNotFound)//_roaldSearchText { NSLog(@"yes");  } else {  NSLog(@"no"); ​ }
字符串中包含的子串个数及子串所在位置
// 子字符串个数.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<iostream>#include <string>#include<fstream>#include <vector>#define MAX 50usin...
python判断一个字符串是否包含子串的方法
使用成员操作符 in 使用 string 模块的find()/rfind() 方法 仅限于在python2中使用 使用string的index()/rindex()方法 index()/rindex()方法跟find()/rfind()方法一样,只不过找不到子字符串的时候会报一个ValueError异常。 使用字符串对象的find()/rfind() 、index/rindex() 和co...
JS判断一个字符串是否包含一个子串
一、String.indexOf() var str = "hello i am ithome"; var name = "ithome"; if(str.indexOf(name) > -1){ alert("contains..."); } 二、正则 var str = "hello i am ithome"; var b = new RegExp("ithome").
js判断一个字符串是否包含一个子串的方法
function isContains(str, substr) { return str.indexOf(substr) >= 0; }
Python--判断一个字符串是否包含某子串的几种方法
(1).find()方法:            Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。看示例:print(result3)string = 'this is string' >>>result1 = string.f...
Python判断一个字符串是否包含子串的几种方法
1.使用成员操作符 in>>> s='nihao,shijie' >>> t='nihao' >>> result = t in s >>> print result True2.使用string模块的find()/rfind()方法>>> import string >>> s='nihao,shijie' >>> t='nihao' >>> result = string.find(s,t)!=
怎样判断一个字符串是否包含一个子串
怎样判断一个字符串是否包含一个子串,例如判断abcd是否包含c
最小包含子串的长度
#include <iostream> #include <string> #include <climits> #include <cmath> #include <vector> using namespace std; int minLength(string& str1, string & str2) { ...
怎样判断输入的字符串中是否包含某个字符或某个字符子串?
比如我想在用户提交的时候判断mail文本域中是否包含@和com字符,如果不包含就不提交表格,应该怎么做?
Java程序、JSP以及JavaScript中如何判断某个字符串是否包含某个子串
1. JSP 2. JavaScript if (item.status.indexOf("通过") > 0) { } 3. Java中字符串中子串的查找共有四种方法,如下: ① int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。   ② int indexOf(String str, int startIndex):从指定的索引
shell 判断字符串是否包含另一个字符串
1.使用grep 复制代码 s1=“abcdefg” s2=“bcd” result=$(echo s1∣grep"s1 | grep "s1∣grep"{s2}") if [[ “result"!=""]]thenecho"result" != "&am...
PHP判断字符串是否包含另一个字符串
对中文支持不好 if(strpos('www.jb51.net','jb51') !== false){ echo '包含jb51'; }else{ echo '不包含jb51'; }  
php 判断字符串是否包含另一个字符串
php 判断一个字符串是否在另一个字符串中存在判断某字符串中是否包含某字符串的方法 判断某字符串中是否包含某字符串的方法 //利用 strpos函数 注意要用 !== $data="SQLSTATE"; $msg="SQLSTATE[42000]: Syntax error or access violation: 1064 You "; if(strpos($msg,$data) !==
JavaScript 判断字符串是否包含某个字符串
String 对象 indexOf() 返回某个指定的字符串值在字符串中首次出现的位置。 如果要检索的字符串值没有出现,则该方法返回 -1。 var str = "中华人民共和国"; console.info(str.indexOf("人民")!=-1); // true console.info(str.indexOf("中国人")!=-1
IOS判断字符串是否包含某个字符串
NSRange rangeUrl = [ urlString rangeOfString:@”http://”];//判断字符串是否包含http:// if (rangeUrl.location !=NSNotFound)//包含 { //todo }
js判断字符串是否包含某个字符串
用indexOf()判断 var str = "123456"; if(str.indexOf("5") != -1) { console.log("字符串123456里包含了5"); }else{ console.log("字符串123456里没有包含5"); } ndexOf() 方法可返回某个指定的字符串值在字...
JS判断字符串是否包含某个字符串
var str = "123"; console.log(str.indexOf("3") != -1 );  
如何判断某个字符串中含有某个子串?
比如说如何判断字符串‘253454654’中是否含有子串‘123’和子串‘345’?
请教如何快速检索包含某个子串的记录?
大家都知道有了索引可以实现快速检索,rn大家也知道使用substr(),like的时候索引是没有派上用场的。rn所以我有个疑问,如果实现快速检索一个字段是否包含某个子串?rnrn谢谢!
--- java中如何判断一个字符串中是否包含另一个子串-----
String father="Welcome you to come here";rnString child ="you";rn我想问怎样判断father中是否包含child,请高手指教!!!!
判断一个数字中是否包含两个相同的子串
题目: 判断给定的一个数字,把它当成字符串以后,该字符串中是否包含相同的两个子串,子串的长度要求大于等于2。 比如:12123,该数字包含两个“12”子串; 又比如:1223122,该数字包含两个“122”子串。 输入: 待判断的正整型数字,最大长度为9。 输出: 0:不包含; 1:包含。 样例: 输入: 12123 输出: 1
判断数字中是否包含两个相同的子串 华为oj
描述: 判断给定的一个数字,把它当成字符串以后,该字符串中是否包含相同的两个子串,子串的长度要求大于等于2。 比如:12123,该数字包含两个“12”子串; 又比如:1223122,该数字包含两个“122”子串。运行时间限制: 无限制 内存限制: 无限制 输入: 待判断的正整型数字,最大长度为9。 输出: 0:不包含; 1:包含。样例输入: 12123 样
如何判断StringBuffer中是否包含某一个子串
判断StringBuffer中是否包含某一个子串
判断字符串中是否有子串
判断字符串中是否有子串,另外必须是第一个位置开始rnrn
C#中如何判断一段字符串中包含另一个字符串?
如:"djfoweroiewur2384734csdndklfdj"rn如何判断上一字符串中包含"csdn"?
正则查找包含某个字符串
string viewScript = " left join (select T1 as T2 from Table group by T1 ) [color=#FF0000]as[/color] t on t (select 1 from TT) [color=#FF0000]as[/color] c";rnrn我想得到的结果是 left join (select T1 as T2 from Table group by T1 ) t on t (select 1 from TT) crnrn我是样写只能替换掉最后一个asrnviewScript = Regex.Replace(viewScript, "join(.*)as ", "join $1", RegexOptions.IgnoreCase);rnrn正则里怎么加个from,但不知道写rnviewScript = Regex.Replace(viewScript, "join((from).*)as ", "join $1", RegexOptions.IgnoreCase);
java正则判断字符串是否包含中文
r r 为什么我在javascript下用4e00-9fa5可以行,在java下不行呢?r 我用new String(s.getBytes(),"UTF-8")转换后试了也不行,那就排除原始内容编码的问题了。
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数

相似问题

4
怎么javascrpt语言实现将一个字符串转换为多个字符串构成的数组并且判断每个字符串的数组?
2
字符串怎么在jacvscropt语言里实现字符串的判断
3
javascpt语言怎么对字符串的类型用类型判断?怎么判断字符串属于的类型是什么?
1
正则表达式不包含特定字符串?
2
oracle正则表达式,不包含某个字符串?
2
C里如何用substring从后往前截取一段字符串?
2
java替换字符串中包含的5位长度的数字,其他长度不用处理,请问有什么好的办法?
2
go为什么不能获取字符串某个字符地址?
2
我要截取一段字符串,以固定的一个字符截取,应该这么做?
1
利用指针写一函数,实现一长字符串中两短字符串交换,从主函数输入待替换的长字符串以及替换前后两个子串?
0
mongodb截取数据库一段字符串并判断是否包含别的字符串怎么写
3
oracle如何截取字段中的一段字符串
4
正则 校验英文逗号字符串
2
请问NSIS怎样在一段信息中查找需要的字符串
1
输入一个字符串,可以删除字符串s中的任意字符,剩下的字符串形成对称字符串,且该字符串为最长对称字符串
0
给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,用C语言实现的代码怎么写的
0
判断这个字符串是否是安全的,如何采用C语言的程序的设计的代码的形式来实现对于字符串安全的判断
1
编码题,编写一段程序对字符串进行输出
4
如何用python来提取一个字符串中的key和value。