精华内容
下载资源
问答
  • 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个...3,包含a包含b和c:  ^((?!b|c).)*a((?!b|c).)*$

    正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

    构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

    正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

     

    普通字符

    普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。


    非打印字符

    非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:

    字符描述
    \cx匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
    \f匹配一个换页符。等价于 \x0c 和 \cL。
    \n匹配一个换行符。等价于 \x0a 和 \cJ。
    \r匹配一个回车符。等价于 \x0d 和 \cM。
    \s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
    \S匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
    \t匹配一个制表符。等价于 \x09 和 \cI。
    \v匹配一个垂直制表符。等价于 \x0b 和 \cK。

    特殊字符

    所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoo*b 中的 *,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 \: runo\*ob 匹配 runo*ob。

    许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:

    特别字符描述
    $匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。
    ( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
    *匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
    +匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
    .匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
    [标记一个中括号表达式的开始。要匹配 [,请使用 \[。
    ?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
    \将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
    ^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
    {标记限定符表达式的开始。要匹配 {,请使用 \{。
    |指明两项之间的一个选择。要匹配 |,请使用 \|。

     

    限定符

    限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。

    正则表达式的限定符有:

    字符描述
    *匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
    +匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
    ?匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等价于 {0,1}。
    {n}n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
    {n,}n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
    {n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。

     

    定位符

    定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

    定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束,\b 描述单词的前或后边界,\B 表示非单词边界。

    正则表达式的定位符有:

    字符描述
    ^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。
    $匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。
    \b匹配一个单词边界,即字与空格间的位置。
    \B非单词边界匹配。

    注意:不能将限定符与定位符一起使用。由于在紧靠换行或者单词边界的前面或后面不能有一个以上位置,因此不允许诸如 ^* 之类的表达式。

    选择

    用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。

    其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。

     

    反向引用

    对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储。缓冲区编号从 1 开始,最多可存储 99 个捕获的子表达式。每个缓冲区都可以使用 \n 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。

    可以使用非捕获元字符 ?:、?= 或 ?! 来重写捕获,忽略对相关匹配的保存。

    原网址:http://www.runoob.com/regexp/regexp-syntax.html

     

    示例:

    1,包含a和b:

                            ^(?=.*a)(?=.*b).*$

    2,包含a不包含b:

                            ^((?!b.)*a((?!b).)*$

    3,包含a不包含b和c:

                            ^((?!b|c).)*a((?!b|c).)*$

    展开全文
  • A包含的所有 B 都替换为 C ,如果替换以后还有 B 就继续替换,直到 A包含 B 为止。 1、请编写程序实现以上功能。不允许使用系统提供的字符串比较、查找和替换函数。 js版代码实现 let a1 = '...

    A、 B 、 C 是 3 个字符串。把 A 中包含的所有 B 都替换为 C ,如果替换以后还有 B 就继续替换,直到 A 不包含 B 为止。
    1、请编写程序实现以上功能。不允许使用系统提供的字符串比较、查找和替换函数。

    js版代码实现
    
    let a1 = 'aaabbbcccbbbffbbb';
    let b1 = 'bbb';
    let c1 = 'ddd';
    
    function find(a,b,c){
    	while(true){//直到a中没有b
    		let num = a.indexOf(b);//确定a中b的开始下标
    		console.log(num)
    		if(num != -1){//查找到
    			let Aarr = a.split('');//转换成数组
    			a = '';
    			let count = 0;
    			Aarr.map((item,index)=>{
    				// console.log(item,index);
    				if(index>=num && index<num+b.length){
    					if(count == 0){
    						a += c;
    					}
    					count ++;
    				}else{
    					a += Aarr[index];
    				}
    			})
    		}else{
    			return a;
    		}
    	}
    }
    let f = find(a1,b1,c1);
    console.log(f);
    public class Test1 {
        public static void main(String[] args) {
            String a = "aabbccbb";
            String b = "bb";
            String c = "eeee";
            a = func(a, b, c);
            System.out.println(a);
        }
    
        public static String func(String a,String b,String c){
            while(true){
                int num = a.indexOf(b);
                if (num != -1){
                    char[] a_chars = a.toCharArray();
                    a = "";
                    int count = 0;
                    for (int i = 0; i < a_chars.length; i++){
                        if (i >= num && i < num + b.length()){
                            if (count == 0){
                                a = a + c;
                            }
                            count ++;
                        }else{
                            a = a + a_chars[i];
                        }
                    }
                }else{
                   // System.out.println(a);
                    return a;
                }
            }
        }
    }

    X Y Z 是三维坐标系。线段 A B 保持 A 点不动,围绕 Z 轴方向 (红色虚线示意
    逆时针旋转( B 点移动到 C 点位置) ),旋转角度相当于在 X Y 平面投影的 30 度 。 求 C 点坐
    标。

    这题实在不会,请会的在评论区写一下这个解法或者思路,谢谢 

     

     

     

    展开全文
  • A包含的所有 B 都替换为 C ,如果替换以后还有 B 就继续替 换,直到 A包含 B 为止。 1. 请编写程序实现以上功能。不允许使用系统提供的字符串比较、查找和替换函数。 2. 以上程序是否总是能正常输出结果?...

    第一题:(此题目要求手写)
    A、 B 、 C 是 3 个字符串。把 A 中包含的所有 B 都替换为 C ,如果替换以后还有 B 就继续替
    换,直到 A 不包含 B 为止。
    1.
    请编写程序实现以上功能。不允许使用系统提供的字符串比较、查找和替换函数。
    2.
    以上程序是否总是能正常输出结果?如果不是,列出哪些情况下无法正常输出结果,尽
    可能详细和全面。

    public class Test1 {
        public static void main(String[] args) {
            String a = "aabbccbb";
            String b = "bb";
            String c = "eeee";
            a = func(a, b, c);
            System.out.println(a);
        }
    
        public static String func(String a,String b,String c){
            while(true){
                int num = a.indexOf(b);
                if (num != -1){
                    char[] a_chars = a.toCharArray();
                    a = "";
                    int count = 0;
                    for (int i = 0; i < a_chars.length; i++){
                        if (i >= num && i < num + b.length()){
                            if (count == 0){
                                a = a + c;
                            }
                            count ++;
                        }else{
                            a = a + a_chars[i];
                        }
                    }
                }else{
                   // System.out.println(a);
                    return a;
                }
            }
        }
    }
    
    

    在这里插入图片描述
    这题好久没玩数学看的我有点懵!
    写不出来,真他妈头疼!
    只是画了画,分析一下
    在这里插入图片描述
    至于代码么,没写。。。。。。。。

    展开全文
  • //如果数组A包含数组B的某些元素,包含输出1,否则输出0 String ArrayA=["a","b","c"]; String ArrayB=["a","b","d"]; int index=0; for(String array:ArrayB){ if(ArrayA.contains(array)){ index++; break; } ...
    //如果数组A包含数组B的某些元素,包含输出1,否则输出0
    String ArrayA=["a","b","c"];
    String ArrayB=["a","b","d"];
    int index=0;
    for(String array:ArrayB){
       if(ArrayA.contains(array)){
          index++;
          break;
       }
    }
    System.out.println(index);
    展开全文
  • 题目: 给出两个字符串ab,例如 a=”ABJKI“, b=“JK”,则 a 包含 b 。 下面的方法很巧妙啊。
  • 正则校验字符串中是否包含A或者B

    万次阅读 2018-01-08 14:11:18
    方法 /(A)|(B)/.test(str) 例子 let str = '发布成功,审批通过' /(成功)|(通过)/.test(str) // true
  • 一个既包含a包含b 的sql 语句

    千次阅读 2011-11-21 11:28:52
    需求:得到name值包含条件id的name的id 例:既包含a包含b的id 思路:一开始想着用 join 或者 exists 来解决,费劲不少,解决了 但是问题是id不固定,name多少不固定.......... 如果是id=n又有a,b又有c,d,e... 要...
  • let newArr = A.filter(function (item) { return B.every(function (item1) { return item.SPID != item1.SPID; }) });
  • 编写一个算法,寻找字符串a的最短子字符串,使得该子字符串包含字符串b中的所有字符。 这是一道典型的动态规划题,有点类似编程之美中最短摘要生成那道题目。 可以使用两个指针t_rear和t_front遍历字符串a。使用两个...
  • 给出 A = “ABCD” B = “ACD”,返回 true 给出 A = “ABCD” B = “AABC”, 返回 false 注意 在 A 中出现的 B 字符串里的字符不需要连续或者有序。另外的一种写法如下。不对的地方还望指正
  • 判断字符串A中是否包含字符串B

    千次阅读 2016-01-18 15:19:24
    使用rangeOfString判断字符串A中是否包含字符串B 使用谓词来判断字符串A中是否包含字符串B1. 使用rangeOfString判断字符串A中是否包含字符串Boc提供了一个rangeOfString。然后看length长度。 NSString * str1 = @"我...
  • 在excel中怎么看A列数据是否包含B列的数据 介绍3种方法: 1,=IF(COUNTIF(A:A,B2)>=1,“在A列包含”," 不在A列") 2,=IF(IFERROR(MATCH(B2,A:A,0),0)>0,“在A列包含”," 不在A列") 3,=IF(IFERROR(INDEX(A:A,...
  • 即从字符串A中把字符串B包含的字符全删掉,剩下的字符组成的就是字符串AB。 输入格式: 输入在2行中先后给出字符串AB。两字符串的长度都不超过10 ​4 ​​,并且保证每个字符串都是由可见的ASCII码和空白字符...
  • * 例:包含admin且不包含abc。 加上首尾 ^((?!abc).)$ 表示匹配一行 ^((?!abc).)admin((?!abc).)$ * 查资料知道: * (?!pattern) 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配...
  • C++判断字符串A是否包含字符串B

    千次阅读 2014-07-14 19:32:06
    bool isContain(char *a, char *b){ int i = 0; int j = 0; int k = 0; while(a[i] != '\0' && b[j] != '\0'){ k = i+1; while(b[j] != '\0'){ if(a[i] == b[j]){ i++; j++; }else{ i =
  • 公式: =IF(COUNTIF(A:A,B1),"包含","没有包含")
  • 表A字段 ![图片说明](https://img-ask.csdn.net/upload/201705/31/1496229058_164730.png) 集合B ![图片说明]...如何使用sql查询语句查询出表A包含集合B子元素的数据
  • java判断A字符串中是否包含B字符

    万次阅读 2017-04-08 08:33:04
    当且仅当此字符串包含指定的 char 值序列时,返回 true。 参数: s - 要搜索的序列 返回: 如果此字符串包含 s,则返回 true,否则返回 false 抛出: NullPointerException - 如果 s 为 null 接口 CharSequ
  • 已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。;编制程序,把A与B交集的整数存放在C中DATA SEGMENTA DB 0,1,2,3,4,5,6,7,8,9,11,12,13,14,15COUNT1 DW $-AB DB 9,8,7,6,5,4,3,2,1,0,20,19,18,17,...
  • java 检查a字符串是否包含b字符串

    千次阅读 2016-01-11 12:13:02
    1:将字符串转换为数组 public static boolean ... * s1字符串是否包含s2 * @param s1 * @param s2 * @return */ public static boolean isContain(String s1,String s2) { return s1.contains(s2); }
  • package javatest;... * 问题:有2个数组A,B, B数组中的元素包含A数组中,请写一段代码把A数组中B没有的元素放道C数组中。  *  * @author Administrator  *  * 程序如下:  *  */ public clas
  • 【java】java判断字符串A中是否包含字符串B

    千次阅读 热门讨论 2017-09-27 15:58:05
    public static void main(String[] args) { String str="ABC_001"; if(str.indexOf("ABC")!=-1){ System.out.println("包含"); }else{ System.out.println("不包含"); } }
  • 需求是 找出两列数据(单列有重复)中的相互重复项----也就是说本身的列重复的数据不算,比如有AB两列,找出AB的重复项,也就是B包含A的话就标记出来。我们在上一篇已经讲了 EXCEL----数据处理(一)----找出...
  • 已知数组 A 包含 20 个互不相等的字整数,数组 B 包含 30 个互不相等的字整数,试编写一个程序,将既在 A 数组中又在 B 数组中出现的数存放在数组 C1 中。 DATA SEGMENT A DW 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,168,301
精华内容 867,320
关键字:

a真包含于b