1.字符组Character Class
a.正则表达式的最基本结构之一。
b.作用:规定某个位置能够出现的字符。
c.形式:以【[...]】给出,在方括号内列出允许出现的字符。
2.以连字符‘-’表示范围
[0123456789]=[0-9]
[0-789]=[0-9]
[0123456789abcdef]=[0-9a-f]
3.关于连字符的注意事项
注意:在字符组内部,只有当连字符出现在两个字符之间时,才能表示字符的范围;
如果出现在字符组的开头,则只能表示单个字符‘-’
4.排除型字符组
a.作用:规定某个位置不容许出现的字符
b.形式:以[^...]给出,在方括号内列出不容许出现的字符。
c.排除型字符组仍然必须匹配一个字符。------>重点!!!
/**
* ^排除型字符组仍然必须匹配一个字符
* */
public class NegativeCharacterClassMind {
public static void main(String[] args) {
String[] strings = new String[] { "case", "casa", "caso", "cas" };
String regex = "cas[^e]";//排除型字符组仍然必须匹配一个字符
for (String s : strings) {
if (regexMatch(s, regex)) {
System.out.println("\"" + s + "\" can be matched with regex \""
+ regex + "\"");
} else {
System.out.println("\"" + s
+ "\" can not be matched with regex \"" + regex + "\"");
}
}
}
public static boolean regexMatch(String s, String regex) {
return s.matches(regex);
}
}
e.^在[]里面的第一个字符的意思是取反
^其他代表一行的开头。
5.字符组简记法
对于常用的字符组,正则表达式提供了相应的简记法,方便地表示它们。
\d=[0-9]
\D=[^0-9]
\w=[0-9a-zA-Z_]
\W=[^0-9a-zA-Z_]
\s=匹配空白字符(回车、换行、制表、空格)
\S=匹配非空白字符
6.特殊的简记法:点号
a.点号.是一个特殊的字符组间记法,它可以匹配几乎所有字符
b.\.匹配点号本身
c.在字符组内部,[.]也只能匹配点号本身
注意:点号不能匹配换行符。(默认是匹配模式是点号是可以匹配换行符的)
/**
* 注意:点号不能匹配换行符。
* */
public class DotMatchMind {
public static void main(String[] args) {
String dot = ".";
String lineFeed = "\n";
if(regexMatch(lineFeed, dot)) {
System.out.println("Dot can match LineFeed");
}
else {
System.out.println("Dot can not match LineFeed");
}
}
public static boolean regexMatch(String s, String regex) {
return s.matches(regex);
}
}
分享到:
相关推荐
在本案例中,"regex.h" 和 "regex.cpp" 是两个关键文件,它们分别代表了C语言中处理正则表达式的头文件和源文件。 `regex.h` 头文件是C语言中使用正则表达式的关键接口,它包含了所有与正则表达式相关的函数声明和...
正则表达式(Regular Expression,简称Regex)是一种用于匹配字符串中字符组合的模式。它广泛应用于文本处理、数据验证、搜索与替换等领域。 正则表达式的基本组成: 普通字符:直接匹配的字符,如 a, b, 1, # 等。...
在C++编程语言中,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,用于模式匹配、查找、替换和提取字符串中的特定模式。STL(Standard Template Library)库是C++的一个重要组成部分,它...
正则表达式(Regular Expression,简称RegEX)是一种强大的文本处理工具,用于匹配、查找、替换等操作。在编程和数据分析领域,正则表达式扮演着至关重要的角色。"RegEX Tester"是一款实用的工具,它能帮助用户方便...
1. 匹配:`boost::regex_match`、`boost::regex_search`和`boost::regex_iterator`分别用于检查整个字符串、子串以及迭代器范围内的匹配。 2. 替换:`boost::regex_replace`函数可以将匹配的文本替换为指定的字符串...
正则表达式(RegEx)是一种强大的文本处理工具,用于在字符串中进行模式匹配和查找、替换等操作。`RegEx TestBed` 是一个专为 .NET 平台设计的正则表达式测试工具,它提供了直观的界面和丰富的功能,帮助开发者测试...
- **基本元素**:包括字符匹配(如字母、数字)、特殊字符(如`.`匹配任何字符,`^`表示开始,`$`表示结束)和量词(如`*`表示零个或多个,`+`表示一个或多个,`?`表示零个或一个)。 - **分组**:使用`()`将部分...
此外,Boost Regex库还支持许多正则表达式的高级特性,比如零宽断言、捕获组和后向引用等。这些特性为处理复杂的文本模式匹配提供了强大的支持。 总的来说,掌握Boost Regex库的使用对于任何需要处理文本数据的C++...
在IT行业中,正则表达式(Regex)是一种强大的文本处理工具,用于匹配、查找、替换或提取特定模式的字符串。本项目"regex test.zip_regex"显然聚焦于C++编程语言中的正则表达式测试,通过`example.cpp`源代码文件...
正则表达式(Regex)是计算机编程语言中用于处理文本的一种模式匹配工具,它能高效地搜索、查找、替换和提取字符串中的特定模式。RegexTester是一款功能强大的正则表达式测试工具,它允许用户在直观的环境中编写和测试...
3. 分析复杂情况:面对复杂的文本匹配需求,RegExr.air的分组和捕获功能可以帮助用户理解如何使用括号来捕获匹配的子串,以及如何利用非捕获组 `(?:)` 来控制匹配行为。 4. 进阶学习:深入到正则表达式的高级特性,...
这里创建了一个`boost::regex`对象`reg`,用于匹配任何包含三个连续数字的字符串。 ##### 2. 匹配一个或多个字母 ```cpp boost::regex reg("[a-zA-Z]+"); ``` 这个正则表达式可以匹配一个或多个字母组成的字符串。 ...
例如,`boost::regex_search`可以用于在一个字符串中查找符合特定模式的所有实例,而`boost::regex_replace`则可以将所有匹配的子串替换为新的字符串。 此外,Boost.Regex还支持正则表达式的捕获组、预查、反向引用...
- **匹配过程可视化**:通过高亮显示,展示正则表达式的匹配过程,逐字符或逐组进行解析。 - **匹配结果**:显示正则表达式与输入文本的匹配结果,包括成功或失败。 - **步进模式**:允许用户逐步执行匹配过程,理解...
3. **分组与捕获**:RegexTester可以显示分组匹配的结果,这对于理解复杂的正则表达式中的捕获组至关重要。 4. **替换功能**:除了测试匹配,RegexTester还允许进行替换操作,可以看到原始文本如何根据指定的正则...
3. **匹配组**:支持捕获和查看匹配的子字符串,这对于分组操作(如`(.*?)\s+(.*?)`)非常有用。 4. **替换功能**:允许用户使用正则表达式找到匹配项,并用新的文本替换它们。 5. **调试工具**:通过步进和查看匹配...
正则表达式,简称regex,是一种模式匹配语言,用于在文本中查找、替换或提取特定的字符串模式。它们广泛应用于数据验证、文本分析和搜索等功能。在.NET框架中,正则表达式的操作主要通过System.Text.Regular...
在RegexTester中,你可以输入待测试的正则表达式,然后提供一个字符串或者一组字符串作为输入数据。工具将显示匹配的结果,让你直观地看到正则表达式是否按预期工作。这对于调试和优化正则表达式非常有用,特别是...
4. **捕获组和命名捕获组**:RegexTester可以显示正则表达式中的捕获组,帮助你理解哪些部分被匹配。此外,对于命名捕获组(使用`(?'name'...)`语法),RegexTester还会显示它们的名称和对应的匹配值。 5. **反向...
- 检查结果:查看匹配的子串、捕获组以及匹配的索引位置等信息。 通过RegexTester.exe,你可以逐步调试和优化正则表达式,确保它们在实际应用中能准确无误地工作。这个工具对于开发者、数据分析师、网页设计师等...