1、基本的字符匹配

 1 package regex;
 2
 3 public class TestReg01 {
 4     public static void main(String[] args) {
 5         //"."表示任意字符
 6         System.out.println("a".matches("."));
 7         System.out.println("as".matches(".s"));
 8         // \\d表示是否为数字
 9         System.out.println("123".matches("\\d\\d\\d"));
10         // \\D表示是否不是数字,大写与小写相反。
11         System.out.println("rtz2ez".matches("\\D\\D\\D\\d\\D\\D"));
12         // \\s表示是为空白字符
13         System.out.println("1  2  1".matches("\\d\\s\\s\\d\\s\\s\\d"));
14         // tab也算空白字符
15         System.out.println("1        2    1".matches("\\d\\s\\s\\d\\s\\d"));
16         // \\w表示常用字符:a-z,A-Z,_,0-9
17         System.out.println("aa b1 22".matches("\\w\\w\\s\\w\\d\\s\\d\\d"));
18         // [abcd]表示要匹配的这个字符是否为abcd中的某一个字符
19         System.out.println("a".matches("[abcd]"));
20         // [a-zA-D]表示是否为在a-z,A-D之间的字符
21         System.out.print("b".matches("[a-zA-D]")+",");
22         System.out.println("b".matches("[a-z[A-D]]"));
23         // [a-zA-D]表示是否为不在a-z,A-D之间的字符
24         System.out.println("X".matches("[^a-zA-D]"));
25         // [a-z&&[def]]表示在a-z中间并且是def中的一个
26         System.out.println("f".matches("[a-z&&[def]]"));
27         // [a-z&&[def]]表示在a-z中间并且是def中的一个
28         System.out.println("a".matches("[a-z||[def]]"));
29         System.out.println("b".matches("[a-z&&[^bc]]"));
30
31 //        [a-d[m-p]]    a through d, or m through p: [a-dm-p] (union)并集
32 //        [a-z&&[def]]    d, e, or f (intersection) 交集
33 //        [a-z&&[^bc]]    a through z, except for b and c: [ad-z] (subtraction)
34 //        [a-z&&[^m-p]]    a through z, and not m through p: [a-lq-z](subtraction)
35     }
36 }

package regex;
public class TestReg01 {public static void main(String[] args) {//"."表示任意字符System.out.println("a".matches("."));System.out.println("as".matches(".s"));// \\d表示是否为数字System.out.println("123".matches("\\d\\d\\d"));// \\D表示是否不是数字,大写与小写相反。System.out.println("rtz2ez".matches("\\D\\D\\D\\d\\D\\D"));// \\s表示是为空白字符System.out.println("1  2  1".matches("\\d\\s\\s\\d\\s\\s\\d"));// tab也算空白字符System.out.println("121".matches("\\d\\s\\s\\d\\s\\d"));// \\w表示常用字符:a-z,A-Z,_,0-9System.out.println("aa b1 22".matches("\\w\\w\\s\\w\\d\\s\\d\\d"));// [abcd]表示要匹配的这个字符是否为abcd中的某一个字符System.out.println("a".matches("[abcd]"));// [a-zA-D]表示是否为在a-z,A-D之间的字符System.out.print("b".matches("[a-zA-D]")+",");System.out.println("b".matches("[a-z[A-D]]"));// [a-zA-D]表示是否为不在a-z,A-D之间的字符System.out.println("X".matches("[^a-zA-D]"));// [a-z&&[def]]表示在a-z中间并且是def中的一个System.out.println("f".matches("[a-z&&[def]]"));// [a-z&&[def]]表示在a-z中间并且是def中的一个System.out.println("a".matches("[a-z||[def]]"));System.out.println("b".matches("[a-z&&[^bc]]"));//[a-d[m-p]]a through d, or m through p: [a-dm-p] (union)并集//[a-z&&[def]]d, e, or f (intersection) 交集//[a-z&&[^bc]]a through z, except for b and c: [ad-z] (subtraction)//[a-z&&[^m-p]]a through z, and not m through p: [a-lq-z](subtraction)}}

时间: 2024-10-14 04:26:58

1、基本的字符匹配的相关文章

【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配...

37.(字符串)有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配,则两个字符串可以联接,问这 n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误. 分析:如果出现循环,则返回错误 这句不懂 具体做法是先给每个字符串建一个vector 存入每个字符串后面可以匹配的字符串序号 然后遍历所有的搭配情况,找到最长的. 我的遍历代码很丑... 可谓又臭又长..... 深深的自我鄙视. /* 37.(字符串) 有 n 个长为 m+1 的字符串

将字符串s1中的任何与字符串s2中字符匹配的字符都删除

编写一个程序,将字符串s1中的任何与字符串s2中字符匹配的字符都删除. 函数原型:void my_squeeze(char s1[], char s2[]) #include <stdio.h> void my_squeeze(char s1[], char s2[]) { int i = 0; int j = 0; while (s2[j]) { while(s1[i]) { if (s2[j]==s1[i]) { while (s1[i+1]) { s1[i] = s1[i + 1]; i

lua字符匹配

匹配下列格式的数据中的 source和MAC地址: Chain WiFiDog_br-lan_Outgoing (1 references) pkts bytes target prot opt in out source destination 705 109595 MARK all -- * * 10.1.1.191 0.0.0.0/0 MAC C4:6A:B7:6F:7A:AB MARK or 0x200 705 109595 MARK all -- * * 10.1.1.192 0.0.

DP在字符匹配上的实现

在此保存下近段时间做的DP在字符匹配上的实现的题目 对于不同的字符串来说,2者只能不断将下标往后推移来实现匹配从而得到的最大匹配数 如 abcd 和 dcba 这个最大匹配数只能为1,因为两个d匹配后,在第一个字符串中是不能再拿前面的字符进行匹配的(当然你要是匹配a,b,c也是一样的道理) 对于每一道题目若想不断找到那个匹配成功的字符的话,我们需要一个函数不断递归找到前一个匹配成功的字符,这里引进一个T[N][N]的标志位来帮助我们判断何时进行递归 这里的题都是有关这个的形式 1.POJ 145

Codeforces 358B--string--(简单的字符匹配)

题意:一句话加密.每个单词的前后都要加上"<3",完成转换后的句子的任何地方都可以加任何字符或数字(加不加,在哪加,加多少都是不定的).判断输入的密文格式是否符合上面的要求. 分析:简单的字符匹配的题. 先预处理需要加密的句子,然后与输入的密文比较.主要是注意积累string的用法,还有本题预处理的方法. #include<iostream> #include<string> using namespace std; int main() { string

JavaScript正则表达式模式匹配(1)——基本字符匹配

1 var pattern=/g..gle/; //点符号表示匹配除了换行符外的任意字符 2 var str='g78gle'; 3 alert(pattern.test(str)); 4 5 6 var pattern=/go*gle/; //o* ,表示0个或者多个o 7 var str='goooooooooooogle'; 8 alert(pattern.test(str)); 9 10 var pattern=/go+gle/; //o+,表示一个或者多个o 11 var str='g

能够与 &#39; 多种字符&#39; 匹配的表达式

正则表达式中的一些表示方法,可以匹配 '多种字符' 其中的任意一个字符.比如,表达式 "/d" 可以匹配任意一个数字.虽然可以匹配其中任意字符,但是只能是一个,不是多个. 举例 1: 表达式 "/d/d",在匹配 "abc123" 时,匹配的结果是:成功:匹配到的内容是:"12":匹配到的位置是:开始于 3,结束于5. 举例 2: 表达式 "a./d",在匹配 "aaa100" 时,匹配

正则表达式学习(一)-- 字符匹配

文章首发于[sau交流学习社区](https://www.mwcxs.top/page/585.html) 一.前言 正则表达式是匹配模式,要么匹配字符,要么匹配位置. 正则里面的元字符太多了,没有系统性,可以分为: (1)字符匹配攻略 (2)位置匹配攻略 二.字符匹配 包括:两种模糊匹配,字符数组,量词,分支结构. 1.1两种模糊匹配 正则精确匹配乜有意义的,比如正则/saucxs/,只能匹配字符串中的"saucxs"这个子串. var regex = /saucxs/; conso

leetcode 44 字符匹配

题意:s是空串或包含a-z字母: p为包含a-z字母或?或 * (其中*可以匹配任意字符串包括空串,?可以匹配任意字符). 思路: 1)特殊情况:当s为空串时,p为连续 * 时,则连续 * 的位置都为true. 2)若p的第j个字符为 * ,分两种情况: a)  若p中的前 j-1个字符和 s 中的前 i 个字符匹配成功了, 即 dp[i][j-1] == true , 因为 * 可以匹配空串,则 dp[i][j] == true; b)  若p中的前 j 个字符和 s 中前 i-1 个字符匹配

【正则表达式】——02单个字符匹配

[前言]本节主要讲述匹配单个字符 1. 匹配纯文本 区分大小写 匹配纯文本和搜索功能一致 2. 匹配任意字符——“.” .匹配除了换行符以外的任意字符 注意: [元字符]特殊符号和字符,即所谓的元字符,给予了正则表达式强大的功能和灵活性, 正则表达式是由字符组成的字符串,这些字符可以是文本字符(真正的文本),也可以是元字符(含有特殊含义的字符) 原文地址:https://www.cnblogs.com/testxiaobai/p/10762173.html