expresión regular
1.R, recomendamos este Blog
Los ejemplos table_info son los siguientes:
du_mtime_cinema_showtime20190606
du_amap_shoppingmall_indoor_201903_d4
du_amap_shopping_mall_info_2017
du_amap_ship_201909
Quiero tablas que comienzan con "du_amap_" y al final con el año / mes, por lo que en las tablas anteriores, sólo quiero el cuarto. A continuación, en I, carácter de escape (el personaje contragolpe \) debe ser \\. "^" Significa el inicio y "$" significa el final.
^ Pueden eliminar, pero no porque usamos puede funcionar $ "grep".
keyword_all <- '^ du_amap _ + 2 \\ d {5} $' keyword_table <- grep (keyword_all, table_info $ Tables_in_risingdata, valor = T)
str_extract_all es una función que sólo filtra los caracteres que se ajusta al patrón. Los siguientes códigos extraen los últimos seis números: año y mes
table_name_body <- 'amap_cvs_citycount' meses <-str_extract_all (cadena = keyword_table [p], modelo = '\\ d +.')%>% as.character ()
* Significa que el patrón delante de él aparecerá una o más veces, | medios o, y. significa cualquier carácter. El siguiente códigos medios borrar "du_amap_" y "_201 ..".
la palabra clave <- gsub ( '*. amap_ | _201 *', '', table_name_body) shoppingmall_amap $ name <-gsub ( '(\\ (\\ *))', "", shoppingmall_amap $ nombre)
latitud y longtitude
\\ d {2} [.] \\ d +
encontrar china
[\ u4E00- \ u9FA5 \\ s] + caracteres #many, incluido el espacio [\ u4E00- \ u9FA5] + #many caracteres, sin incluir el espacio [\ u4E00- \ u9FA5] carácter #one
2.Python
paquete
import re
Encuentra digital, pitón escapó atención aquí sólo \, sino en escapar a dos R: \\
pattern1 = re.compile (r '\ d +')
Aquí hay una tabla de números de encontrar en cada línea (080) al comienzo de
pattern1 = re.compile (r '\ (080 \) \ d +') fixed_line_all = pd.DataFrame () para i in range (len (calls_pd [0])): fixed_line = pattern1.findall (calls_pd [0] [i ]) fixed_line_all = conjunto (fixed_line_all) .union (fixed_line) fixed_line_all = pd.DataFrame (fixed_line_all)
Aquí comienza con la extracción de los cuatro primeros dígitos 7,8,9
pattern2 = re.compile (r '^ (7 \ d {3} | 8 \ d {3} | 9 \ d {3})') para i in range (len (fixed_line_bind [1])): mobile_line = pattern2 .findall (fixed_line_bind [1] [i]) mobile_bang = conjunto (mobile_bang) .union (mobile_line) mobile_bang = pd.DataFrame (mobile_bang)