先上代码看看,
removeSpecialChar
实现了过滤特殊字符的功能,但是中文只保留了unicode中的基本汉字。
#include <iostream>
#include <regex>
#include <string>
#include <cstdlib>
#include <codecvt>
int removeSpecialChar(const std::string& src, std::string& dst){
std::wstring_convert< std::codecvt_utf8<wchar_t> > wcv;
try{
std::wstring ws = wcv.from_bytes(src);
std::wregex rule(L"[^a-zA-z\\d\u4E00-\u9FA5]");
std::wstring wret = regex_replace(ws, rule, L"");
dst = wcv.to_bytes(wret);
return 0;
}catch(const std::exception& e){
std::cout << e.what() << std::endl;
return -1;
int main()
std::string s = "中文--123!,,,,,,,,ABCc";
std::string ret;
int res = removeSpecialChar(s, ret);
std::cout << ret << std::endl;
授人以鱼不如授人以渔,大家在编程的时候总会遇到要查找某些复杂规则的字符串,例如在 linux 系统中,需要对多个文件里的某段代码进行替换,你是不是还在每个文件打开逐一目标替换?如果你也有这样的困惑那么正则表达式就是你必须会的技能。
1、什么是正则表达式
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个 “规则字符串” ,这个 “规则字符串” 用来表达对字符串的一种过滤逻辑。换句话说,正则表达式就是记录文本规则的代码。
很可能你使用过 Wi
String regEx="[`~!@#$%^&*()_\\-+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(searchKeyWord);
在前端中学习正则表达式是非常有必要的,在实际开发中会经常使用正则表达式。
正则表达式:(Regular Expression)用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
一、正则表达式
正则表达式的作用:
1.给定的字符
分割文档的命令 split
Linux split命令用于将一个文件分割成数个。
该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件,同时默认分割后的文件的名称会以 x 作为前缀,以 aa、ab、ac 这样的双字母格式作为后缀,形成 xaa、xab 这样的名称格式。当然也可以给分割后文件指定名字,不过系统还会给指定的名字后添加字母后缀
行数 : 指定每多少行切成一个小文件
-l 行数: 等价于- 行数
-b<字节> : 指定每多少字节切成一个小文件,
public static String filterIllegalCharacters(String str) {
Pattern pattern = Pattern.compile("[^\\s\\x4e00-\\u9fa5a-zA-Z0-9_-]");
Matcher matcher = pattern.matcher(str);
StringBuffer buffer = new StringBuffer();
while (...
将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。
匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
基础知识:
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。
字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。
计算机要准确的处理各种字符集文字,就需要进行
public static void main(String[] args) {
String str = "100.01¥";
//String str = "100.01(万元)";
//String str = "100.01万元";
//String str = "100万元";
Pattern compile = Pattern.compile("\\d+(\\.\\d+)?");