字符串函数_Linux_python_R_SQL

发布时间 2023-03-29 13:38:14作者: 辰令

字符串处理

grep 查找命令 筛选信息

awk cut 按照指定要求分割-awk 截取列信息     cut 截取字符串信息
  awk FS 对第一行没作用 要用大写的BEGIN
      方法01.利用 expr index来求索引
      方法02.利用awk和列号来获取指定索引的值
sed tr
 sed(流式编辑器)sed主要用来修改文件-增删改查 
  tr替换或删除命令

拼接

wc 统计命令字数、行数、字节数。

sort排序命令

uniq去重命令

双向重定向 tee < << > >> |
文件
  join paste  expand  split 
  
 xargs -i

 expr:计算字符串的长度、索引命令功能	
	  。		  
Unix 下的 diff 及 patch 即是利用编辑距离来进行文本编辑对比的例子 
编辑距离(Edit Distance)
      Levenshtein Distance指两个字串之间,由一个转换成另一个所需的最少编辑操作次数
	     允许的编辑操作包括:插入一个字符(Insertions) 删除一个字符(Deletions) 将其中一个字符替换成另一个字符(Substitutions)。
      主要就是"字符串"匹配场景
	  
	  Damerau-Levenshtein 距离
	  
	  Jaro 距离 匹配窗口(记为matching window,mw) 该算法强调的是局部相似度
	  
	  LCS(最长公共子序列)距离

python 字符串操作常用操作

###字符串特性
   	01.索引特性:负数索引--从末端建立索引,从-1开始
         正数索引--从起始端建立索引,从0开始
	02. 分片特性:对字符串子序列建立索引	 
###如字符串的替换、删除、截取、赋值、连接、比较、查找、分割等
    连接 +  检查成员的 in
    str.strip(): r.lstrip(): .rstrip()
    replace
    
    str.join:连接2个字符串
    s.split("e")
    zfill(11)
    #str.index 和str.find 功能相同,区别在于find()查找失败会返回-1,不会影响程序运行。一般用find!=-1或者find>-1来作为判断条件。
 字符串输出
     format 输出	 
      r可以防止字符串在时候的时候不被转义告诉编译器这个string是个raw string,不要转义
	
###正则:
     import re 
	 
###高阶函数和匿名函数
  生成器表达式 enumerate
  map()函数、filter()函数 sorted()	 

R语言

 .substr(x = ,start = 1, stop = 3) # 提取字符串(首字母大写)
 strsplit 分隔拆分字符串	strsplit("2022:9:21",':')
 paste(str1,str2,...,sep = ' ')其中sep是连接符,默认为空格 
 grep函数
 regexpr()函数	
gregexpr()函数

SQL

函数操作
    字符串长度函数:length
    字符串连接函数:concat
    带分隔符字符串连接函数:concat_ws           
     集合查找函数 find_in_set(string str, string strList)
     分割字符串函数: split
     分割转多行:
    lateral view用于和split, explode等UDTF一起使用
    regexp	
SQLite 是动态数据类型,而 duckdb 是静态类型	
SQLite是行存 duckdb是列存
   Apache Arrow 是一个通用的列式内存格式,方便在内存中做大数据量的计算或者传输,
     有很多 OLAP 数据引擎都在用-duckdb 也支持 arrow 格式,
	
DuckDB
  select distinct on(function_name) function_name, function_type, return_type, parameters, parameter_types 
  from duckdb_functions() 
  where function_type='scalar' limit 10;
  
  string
     string[begin:end]  array_extract(list, index) array_slice(list, begin, end) substr(string, start, length)
	 concat(string, ...)  concat_ws(separator, string, ...)
	 contains(string, search_string) instr(string, search_string) length(string) position(search_string in string)
	replace(string, source, target)  regexp_matches(string, regex) regexp_replace(string, regex, replacement, modifiers)
    mismatches(string, string) 
	 
	 mathematical functions
 jaro_similarity(string, string)  jaro_winkler_similarity(string, string)	 
 字符串相似度比较算法:Jaro–Winkler similarity的原理
      Jaro distance(又称Jaro similarity),这是由Matthew A. Jaro在1989年提出的算法
      Jaro-Winkler distance是由William E. Winkler在Jaro distance的基础上进一步改进的算法