字符串函数

正则表达式总结

≯℡__Kan透↙ 提交于 2020-03-09 16:45:35
正则表达式 定义: 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。 在线正则测试工具: http://tool.oschina.net/regex/ 总结1: 1.由数字、26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3. 正整数: ^[0-9]*[1-9][0-9]*$ 4.非正整数(负整数 + 0): ^((-/d+)|(0+))$ 5. 负整数 : ^-[0-9]*[1-9][0-9]*$ 6.整数: ^-?/d+$ 7.非负浮点数(正浮点数 + 0): ^/d+(/./d+)?$ 8.正浮点数 : ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$ 9. 非正浮点数(负浮点数 + 0): ^((-/d+(/./d+)?)|(0+(/.0+)?))$ 10.负浮点数 : ^(-(([0-9]+/.[0-9]*[1-9][0-9

python学习之正则表达式

我的梦境 提交于 2020-03-09 16:43:52
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。 下图展示了使用正则表达式进行匹配的流程: 正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。如果表达式中有量词或边界,这个过程会稍微有一些不同,但也是很好理解的,看下图中的示例以及自己多使用几次就能明白。 下图列出了Python支持的正则表达式元字符和语法: 1.2. 数量词的贪婪模式与非贪婪模式 正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"。 1.3. 反斜杠的困扰 与大多数编程语言相同,正则表达式里使用"

Python基础知识点总结【面试必过】

时光总嘲笑我的痴心妄想 提交于 2020-03-09 15:01:37
数据类型: 数字类型(int、float、bool(True or False)、complex) 字符串(str) —— ' ' or " " 相关操作:通过下标获取内容,对字符串进行多步操作前一般需要进行切片[:],保证原字符串不会随着操作变化。(注意:起始坐标和结束坐标都看省略,步进根据自己的需要与否决定是否设置,有时候很简单的解决某些问题) 注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九起起巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python教程项目可拿,,一起相互监督共同进步! 常用方法: capitalize 使指定字符串首字母大写 center(width, fillchar) 将原字符串变成指定的长度并且内容居中,剩下的部分使用指定的字符填充 rjust(width, fillchar) 将原字符串变成指定的长度并且内容右对齐,剩下的部分使用指定的字符填充 字符串1.join(字符串2) 在字符串2中的每个字符之间插入一个字符串1 列表(list)—— [1,2,3] 相关操作:列表的操作与字符串的操作基本相同,不过需要注意的是字符串的操作对象是单个字符,列表的操作对象是列表中的元素。 常用方法: append 在列表的末尾添加一个元素 insert

Java实现 LeetCode 345 反转字符串中的元音字母

百般思念 提交于 2020-03-09 12:13:21
345. 反转字符串中的元音字母 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 说明: 元音字母不包含字母"y"。 class Solution { public String reverseVowels ( String s ) { if ( s . length ( ) == 0 ) { return "" ; } char [ ] ss = s . toCharArray ( ) ; int i = 0 , j = s . length ( ) - 1 ; while ( i < j ) { while ( i < j && ( ss [ j ] != 'a' && ss [ j ] != 'e' && ss [ j ] != 'i' && ss [ j ] != 'o' && ss [ j ] != 'u' && ss [ j ] != 'A' && ss [ j ] != 'E' && ss [ j ] != 'I' && ss [ j ] != 'O' && ss [ j ] != 'U' ) ) j -- ; while ( i < j && ( ss [ i ] != 'a' && ss [ i ] != 'e' &&

STL的简单应用1

十年热恋 提交于 2020-03-09 08:17:17
string: C++的字符串类型 标准库string类//include string表示可变长度的字符序列 字符串是对象 string类支持字符串对象的各种操作 各种初始化方式. 字符串之间的复制、比较、连接. 查询字符串长度和判断字符串是否为空. 访问字符串中的单个字符. string的简单使用 #include <iostream> #include <string> using namespace std; int main() {string s1, s2;//创建两个空字符串对象 string s3 = "Hello, world!"; //创建s3, 并初始化 string s4("I am ") ; s2 = "Today" ;//赋值 s1=s3+" "+s4;//字符串连接 s1+="5";//术尾追加 cout << s1 + s2 + "!”<<endl; //输出字符串内容 string的常用操作 读写string对象时应用C++表示方法 即 string s; cin>>s; cout<<s; 同时可以用循环语句来读写string的对象 string word; while(cin>>word) cout<<word; 写string时不能包含有空格的语句 为了弥补这一缺陷 我们可以用 getline() 函数 (以回车为结束标志) 此函数包括两个参数

LeetCode:字符串转换整数 (atoi)

a 夏天 提交于 2020-03-09 07:58:12
刷题神器:LeetCode官方网站 一、题目还原 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。 在任何情况下,若函数不能进行有效的转换时,请返回 0。 说明: 假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−2 31 , 2 31 − 1]。如果数值超过这个范围,请返回 INT_MAX (2 31 − 1) 或 INT_MIN (−2 31 ) 。 示例 1: 输入: “42” 输出: 42 示例 2: 输入: " -42" 输出: -42 解释: 第一个非空白字符为 ‘-’, 它是一个负号。 我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。 示例 3: 输入: “4193 with words” 输出: 4193 解释:

Python的输入与输出、Python输入EOF判断

那年仲夏 提交于 2020-03-09 07:39:16
输入采用input()方法。input输入的元素都是以str形式保存的。输出采用print()方法。 Python中没有代表EOF的字符,因此检测到输入EOF时会直接报错EOFerror。因此我们要采用下面的写法来检测输入到EOF后停止循环输入: while True: try: s = int(input()) print(s) except: print('input complete') break 1 2 3 4 5 6 7 如果在cmd.exe中运行这段代码,输入Ctrl+Z即可停止输入。如果是在Pycharm内建运行框中运行这段代码,输入Ctrl+D即可停止输入。 如果是在Python中读取文件,Python到读取到文件结尾后是返回空字符串的,所以python可以这样判断: str = '' with open('readme.txt', 'r', encoding='utf-8') as fp: while True: s = fp.read(10) if s == '': break str += s print(str) 1 2 3 4 5 6 7 8 Python字符串类型、空值类型、Unicode编码、UTF-8编码、格式化字符串 字符串是以单引号’或双引号"括起来的任意文本。如果字符串内部既包含’又包含",可以用转义字符\来标识。\n表示换行,\t表示制表符

你必须知道的指针基础-4.sizeof计算数组长度与strcpy的安全性问题

独自空忆成欢 提交于 2020-03-09 07:23:36
一、使用sizeof计算数组长度 1.1 sizeof的基本使用   如果在作用域内,变量以数组形式声明,则可以使用sizeof求数组大小,下面一段代码展示了如何使用sizeof: int nums[] = {11,22,33,44,55,66}; int i; // sizeof(nums) 计算nums数组的总字节数 // sizeof(int) 计算int类型所占用的字节数 int length = sizeof(nums)/sizeof(int); for(i=0;i<length;i++) { printf("%d ",nums[i]); }   其中sizeof(nums)代表计算nums数组的总字节数,而sizeof(int)则代表计算int类型所占用的字节数(32位系统下是4个字节,64位下可能不同,因此这里使用sizeof(int)可以向程序员屏蔽这个差异),运行结果为: 1.2 sizeof只能在编译时计算   假如我们将上面的代码做一个抽象,将数组的遍历及打印封装为一个方法,代码如下: void printEach(int* nums) { // sizeof(nums)在这里是计算指针的字节数 int length = sizeof(nums)/sizeof(int); printf("The length of nums is %d\n",length);

Javascript中_==_和_===_的区别

半城伤御伤魂 提交于 2020-03-09 06:29:43
今天就来说说javascript中的比较运算符: 先说一下两个区别: == 用于比较判断两者相等,在比较的时候有隐式类型转换。 ===用于严格比较 判断两者严格相等(也可以说全等于,值相等,数据类型也得相等) ,没有隐式类型转换,进行比较的操作数必须类型一致,不一致时返回flase。 直接上例子:更清楚的展示两者区别 ==进行运算时牵扯到隐式类型转换, 1、如果一个是null、一个是undefined,那么相等。 2、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 3、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。 4、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。 ===运算时没有隐式类型转换 1、如果类型不同,就不相等 2、如果两个都是数值,并且是同一个值,那肯定相等,但是,如果其中至少一个是NaN,那么不相等。 3、如果两个都是字符串,每个位置的字符都一样,那么相等;否则不相等 。 4、如果两个值都是true,或者都是false,那么相等。 5、如果两个值都引用同一个对象或函数,那么相等;否则不相等。 6、如果两个值都是null,或者都是undefined,那么相等。 一句话: ==比较值 ===不仅比较值,也比较类型 来源: CSDN 作者: 漫长的路一人走 链接: https:/

STL学习总结(string)

给你一囗甜甜゛ 提交于 2020-03-09 04:46:26
1. string的简单使用 string 表示可变长度的字符序列,字符串是对象。 string 类支持字符串对象的各种操作。 1.各种初始化方式 2.字符串之间的复制、比较、连接 3.查询字符串长度和判断字符串是否为空 4.访问字符串中的单个字符 使用string 类要包含头文件string 我主要是学到了:string的读入,1. 利用while(cin>>s)while(scanf("%s",s)!EOF)空格是分隔符,当输入无效字符时输入停止; 2.getline()函数;getline(cin,s);当输入换行符时停止;每次可以输入一行。也可以利用while持续输入。 上面这些可以帮助我 解决输入问题。 empty()函数判断string对象是否为空,返回一个 布尔值 string line; if(!line.empty()) //line不为空,输出 size()函数返回string 对象的长度,就是字符的个数; 允许把一个string对象的值赋给另一个string对象 也可以为string对象赋一个字符串字面值常量 string s1 = “hello”, s2; s2 = s1; s1 = “C++ Programming Language”; if (n < hexdigits.size()) //检查下标范围 cout <<"Hex number is: "<