项目中用到字符串分割及替换功能,String中也有想用的分割替换方法,此处采用正则表达式来操作,顺便总结下正则字符的说明,仅做技术分享交流,如果您觉得能用到,证明小编时间没白费,如果您有意见或建议,请留言。
话不多说,进入正题
一、字符说明
1、基础字符说明
x |
字符x |
\\ |
反斜杠"\" |
\t |
制表符('\u0009') |
\n |
换行符('\u000A') |
\r |
回车符('\u000D') |
[abc] |
a, b, 或者 c |
[^abc] |
除a、b、c外的任意字符 |
[a-zA-Z] |
字符a到z及A到Z中任意一个字符 |
[a-d[m-p]] |
字符a到d或者m到p之间任意一个字符,等同于[a-dm-p] |
[a-z&&[def]] |
字符d、e或者f中的任意一个字符 |
[a-z&&[^bc]] |
字符a到z中除了b或c意外的任意一个字符, 等同于 [ad-z] |
[a-z&&[^m-p]] |
字符a到z中除了m到p意外的任意一个字符,等同于 [a-lq-z] |
2、预定义字符说明
. |
任意一个字符 |
\d |
0-9中任意一个数字 |
\D |
任意一个非数字字符 |
\s |
任意一个空格字符: [ \t\n\x0B\f\r] |
\S |
任意一个非空格字符: [^\s] |
\w |
任意一个单词字符: [a-zA-Z_0-9] |
\W |
任意一个非单词字符: [^\w] |
3、边界匹配说明
^ |
一行的开始 |
$ |
一行的结束 |
\b |
一个单词的边界 |
\B |
非单词边界 |
4、量词匹配说明
X? |
字符X,匹配0或1次 |
X* |
字符X,匹配0或多次 |
X+ |
字符X,匹配1或多次 |
X{n} |
字符X,匹配n次 |
X{n,} |
字符X,匹配至少n次 |
X{n,m} |
字符X,匹配至少n次,最多m次 |
5、逻辑运算说明
XY |
X后的紧接着是Y |
X|Y |
X或者Y |
(X) |
X作为一个整体 |
注:使用特殊字符时,使用转义字符“\”,例如:如果要匹配”.” “\”则需写成“\.” “\\”;
二、使用正则表达式分割字符串及替换字符串内容
1、使用正则表达式分割字符串:
示例代码:
//import java.util.regex.Matcher; //import java.util.regex.Pattern; String rex = "1";//分割符 String matchStr = "a1b1c1d1e";//要分割的对象 //获取属于rex正则的pattern对象。 Pattern pattern = Pattern.compile(rex); //按照正则rex指定的规则分割字符串 String[] s = pattern.split(matchStr);
分割后的结果:
2、正则表达式替换字符串中的字符:
示例代码:
String rex = "(\\{\\})+"; String matchStr = "a{}b{}c{}d{}e"; //获取属于rex正则的pattern对象。 Pattern pattern = Pattern.compile(rex); //创建rex正则用于匹配字符串的匹配器 -- 同一个pattern可以有多个不同的匹配器 Matcher matcher = pattern.matcher(matchStr); //用-替换{} while (matcher.find()) { matchStr = matcher.replaceFirst("-"); matcher = pattern.matcher(matchStr); System.out.println(matchStr); }
输出结果:
a-b{}c{}d{}e a-b-c{}d{}e a-b-c-d{}e a-b-c-d-e
相关推荐
在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换、分割等操作。在本教程中,我们将深入探讨如何使用正则表达式来拆分字符串,这对于数据处理和文本分析尤其有用。下面...
3. **分割字符串为单词列表**:使用正则表达式`\b\w+\b`将字符串拆分为单词列表。 ```python words = re.findall(r'\b\w+\b', text) ``` 4. **创建词频字典**:使用Python的`collections.Counter`来计算每个单词...
4. 搜索与提取:`Regex.Match()`、`Regex.Matches()`和`Regex.Split()`分别用于查找第一个匹配项、所有匹配项以及根据模式分割字符串。 5. 替换操作:`Regex.Replace(input, pattern, replacement)`用于替换输入...
例如,"子程序_正则文本替换"可能就是一个易语言中用于执行正则表达式替换的子程序,它接收输入的文本、正则表达式模式和替换字符串,然后返回经过替换操作的新文本。 1. **正则表达式基础** - **元字符**:如`.`...
在C#.NET编程中,正则表达式是一个强大的工具,用于处理字符串的匹配、查找、替换和拆分等任务。正则表达式是由特殊字符和普通字符组成的模式,用于匹配文本字符串。本教程将深入探讨如何使用C#.NET中的正则表达式...
- `Split`:根据正则表达式分割字符串,返回字符串数组。 3. 正则表达式实例 - **验证邮箱地址**:`^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$` - **提取URL**:`http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|...
3. 替换(Replace):`re.sub()`函数查找符合正则表达式的部分,并用新的字符串替换。 4. 分割(Split):`re.split()`函数根据正则表达式将字符串分割成多个子串。 具体函数的使用方法: - `re.match(pattern, ...
3. **替换**:用新的字符串替换匹配到的正则表达式部分。 4. **分割**:根据正则表达式将字符串分割成多个子串。 5. **捕获组**:提取匹配的子串,特别是对于包含括号的正则表达式,可以获取多个匹配部分。 6. **...
- `Regex.Split(input, pattern)`:根据正则表达式模式将输入字符串分割成多个子字符串。 4. **本项目特性** - 查找功能:用户可以输入待检测的文本和正则表达式,工具会返回所有匹配的结果。 - 替换功能:除了...
2. REGEXP_INSTR:在字符串中查找正则表达式,并且返回匹配的位置 3. REGEXP_SUBSTR:返回与正则表达式匹配的子字符串 4. REGEXP_REPLACE:搜索并且替换匹配的正则表达式 使用正则表达式可以编写简洁、强大的 SQL ...
这个库通常包含一系列的类和函数,允许程序员编写符合特定模式的字符串匹配、替换和分割等操作。在标准C++库中,虽然没有内置的正则表达式支持,但通过包含如 Boost 或 TR1(Technical Report 1)扩展,或者在较新的...
5. 调用RegExp对象的Replace方法进行替换操作,将匹配到的字符串替换为@replacestr,并将替换后的结果存储到@retstr变量中。 6. 释放RegExp对象实例,以避免资源泄漏。 7. 返回替换后的字符串@retstr。 8. 在使用该...
例如,`Match()`方法用于查找首次匹配的模式,`Matches()`方法查找所有匹配项,`Replace()`方法替换匹配的文本,而`Split()`方法根据正则表达式分割字符串。 正则表达式语法包含多种特殊字符和构造,如`.`匹配任意...
* 字符串替换:使用正则表达式来替换字符串中符合某个规则的子字符串。 * 字符串分割:使用正则表达式来将字符串分割成多个子字符串。 七、总结 正则表达式是开发人员必备的一种技术,它可以帮助开发人员处理各种...
综上所述,正则表达式提供了多种方法截取字符串,包括直接匹配和提取、分割字符串、结构化数据存储、异常处理等。在实际应用中,需要根据具体的业务逻辑选择最合适的模式和方法。通过熟练运用正则表达式,能够大幅度...
- **分割**:`Split`方法根据正则表达式分割字符串,返回一个字符串数组。 正则表达式中的元字符和预定义字符类是其强大之处。比如,`.`代表任意字符,`\d`表示数字,`\w`表示字母、数字或下划线,`\s`表示空白字符...
- `preg_split`:使用正则表达式将字符串分割到数组中。 正则表达式的语法是专门的,需要掌握特殊字符、量词、字符类等构造。在使用正则表达式时,开发者需要构建一个适当的模式(Pattern),它定义了需要匹配的...
3. **Replace**: 这个方法用于替换字符串中与正则表达式匹配的部分。可以指定替换字符串或替换回调函数。 4. **Split**: 这个方法用于根据正则表达式将字符串分割成多个子字符串。 四、正则表达式语法 Delphi XE...
正则表达式是通过模式匹配来实现数据验证的,可以检查字符串是否包含数字、字母、特殊字符等,并能定义它们出现的顺序、次数等条件。以下是对"winform 使用正则表达式来验证字符串源码"这个主题的详细解释: 1. **...
例如,“正则表达式查找”命令可以找到字符串中所有匹配的子串,“正则表达式替换”则可以将匹配的子串替换成新的内容。 在编程实践中,我们可能会遇到一些挑战,如性能优化、错误处理等。例如,如果待处理的字符串...