首页 > 其他分享 >STATA 正则表达式应用

STATA 正则表达式应用

时间:2023-10-20 20:23:51浏览次数:35  
标签:匹配 STATA 正则表达式 s2 s1 re 应用 字符串 函数

​​1、匹配函数:regexm()和ustrregexm()

(1)regexm(s,re)函数

第一个参数s表示字符串,第二个参数re代表正则表达式,如果正则表达式匹配到字符串s中的某个子字符串,则函数regexm(s,re)的返回值为1,否则为0。但是值得注意的是,由于regexm()是早期版本的正则表达式函数,所以不能识别元字符。

(2)ustrregexm(s,re,[,noc])函数

若正则表达式re能与字符串s中的某个子字符串匹配,则返回值为1,否则为0。在默认情况下,匹配是区分大小写的,但是如果定义noc为一个非零数值,则匹配时不区分大小写。

2、不用正则表达式匹配:strmatch(s1,s2)和strpos(s1,s2)

(1)strmatch(s1,s2)函数

如果字符串s2能够完全匹配字符串s1,则返回值为1,否则为0。在字符串s2中,可以使用通配符?匹配任意一个字符,用通配符*匹配零个或任意多个字符。但要注意的是字符串s2与整个字符串s1匹配时,返回值才是1。而ustrregexm(s,re,[,noc])只要正则表达式re能匹配到字符串s中任意一个子字符串,返回值即为1。

(2)strpos(s1,s2)或index(s1,s2)函数

strpos(s1,s2)和index(s1,s2)其实是同一个函数,如果字符串s2是s1的子字符串,则strpos()返回值是s2首字符在s1中的位置。

3、提取函数:regexs()和ustrregexs()

匹配函数和提取函数一般需要配合使用,先匹配后提取。习惯地将regexm()与regexs()、ustrregexm()与ustrregexs()分别配合使用。

(1)regexs(n)函数

参数n为非负整数,表示提取regexm(s,re)函数匹配到地第n个子字符串。若n为0,则表示把整个正则表达式匹配到地内容全部提取出来。

(2)ustrregexs(n)函数

类似于regexs(n)函数,该函数提取出地字符串为ustrregexm(s,re,[,noc])函数中第n个子字符串匹配到的子字符串。若n=0,则提取整个正则表达式匹配到的内容。

4、替换函数:regexr()、ustrregexrf()和ustrregexra()

subinstr(s1,s2,s3,n)可以实现替换功能,表示将字符串s1中的前n个子字符串s2替换成字符串s3,如果n定义为.则表示将s1中出现的所有s2都替换成s3。但是该函数不能结合正则表达式使用。

(1)regexr(s1,re,s2)函数

将正则表达式re在字符串s1中匹配到的子字符串替换为字符串s2。但是该函数不能识别元字符。

(2)ustrregexrf(s1,re,s2,[,noc])和ustrregexra(s1,re,s2,[,noc])

ustrregexrf(s1,re,s2[,noc])中的f表示first,即将正则表达式re在字符串s1中匹配到的第一个子字符串替换为s2。ustrregexra(s1,re,s2[,noc])中的a表示all,即将正则表达式re在字符串s1中匹配到的所有子字符串都替换为s2。若向noc传递一个非零数字,表示在匹配时不再区分大小写。

 

正则表达式    含义
[\u4e00-\u9fa5]    匹配中文字符
[^\x00-\xff]    匹配双字节字符(包括汉字在内)
\n\s*\r    匹配空白行
<(\S*?)[^>]*>.*?</\1>|<.*? />    匹配HTML标记
^\s*|\s*$    匹配首尾空白字符
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*    匹配Email地址
[a-zA-z]+://[^\s]*    匹配网址URL
^[a-zA-Z][a-zA-Z0-9_]{4,15}$    匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)
\d{3}-\d{8}|\d{4}-\d{7}    匹配国内电话号码
[1-9][0-9]{4,}    匹配腾讯QQ号(腾讯QQ号从10000开始)
[1-9]\d{5}(?!\d)    匹配中国邮政编码(中国邮政编码为6位数字)
\d{15}|\d{18}    匹配身份证(中国的身份证为15位或18位)
\d+\.\d+\.\d+\.\d+    匹配ip地址

 

标签:匹配,STATA,正则表达式,s2,s1,re,应用,字符串,函数
From: https://www.cnblogs.com/xkdn/p/17777943.html

相关文章

  • 汽车零部件加工刀具,“数控刀具协同设计制造与服务关键技术研究及应用示范”召开工作会
    成都工具研究所有限公司的前身是成都工具研究所,于1956年创建于北京,是原机械工业部的直属研究所,是我国机械工业的综合性工具科研机构。公司官网:http://www.ctri.com.cn/公司主要从事精密切削工具、精密测量仪器以及表面改性处理技术的技术研究、产品开发和应用服务。2021年3月17日......
  • 腾讯云 CODING 快速应用中心,让您 10 分钟轻松玩转 AIGC
    点击链接了解详情前言AI时代已经到来,与其说这是一个技术变革,不如说这是对我们工作和生活方式的全面升级。很多人已经听说过StableDiffusionAI绘图和Meta公司推出的免费大语言模型Llama2,它们代表了当今最前沿的技术水平。但对于绝大多数人来说,尝试和体验这些前沿技术......
  • 墨水屏技术在贴片厂的创新应用探索
    墨水屏技术在贴片厂的创新应用探索随着科技的不断发展,墨水屏标签在各个领域的应用越来越广泛。在贴片厂,墨水屏标签的应用也日益增多,它不仅提高了生产效率,还降低了成本,提高了产品质量。本文将详细介绍墨水屏标签在国内某知名品牌贴片厂的应用场景、优势以及如何实现应用。应用产品型......
  • WiFi无线技术的工作原理及应用简介
    WiFi是一种无线技术,可以让设备连接到互联网。它使用无线电波来传输数据,并在短距离内提供高速的数据传输。下面是WiFi无线技术应用详解:WiFi的工作原理WiFi无线技术的工作原理是将有线网络信号转换成无线电波,并通过无线路由器将信号发射到周围环境中。一旦设备进入WiFi信号的覆盖范......
  • 实验2— C语言分支与循环基础应用编程
    1.实验任务1源代码1#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13747#defineN246589intmain()10{11intnumber;12inti;1314srand(time(0));1516for......
  • 实验2 C语言分支与循环基础应用编程
    摘要一、实验目的二、实验准备三、实验内容四、实验结论 task1源代码:1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55#defineN13746#defineN246578intmain()9{10intnumber;11inti;12srand(time(0));......
  • 正则表达式学习指南
    前置芝士转移字符\r、\n回车,换行符\t制表符\\\^\$\.\d匹配数字\w匹配字母、数字、下划线\s匹配空格、制表符、换页符、空白符特殊符号{n}{m,n}{m,}?+*^$\b|()朴素匹配[ABC][^ABC][A-Z][0-9].or[^\n\r]匹配除换行符(\n、\r)之外的......
  • android 友盟SNS_SDK为Android应用加入SNS分享、同步功能
    使用友盟SNS_SDK为Android应用加入SNS分享、同步功能很多朋友在开发Android应用的过程中,都想加入社会化的分享功能,如将自己的应用使用状态或心得同步到新浪微博、人人网或腾讯微博等。这些社交网络或微博都已经发布了针对开发者的开放平台(关于开放平台的相关信息,请参考《说说微......
  • 实验2 C语言分支与循环基础应用编程
    实验任务1task1.c源代码:1#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13747#defineN246589intmain()10{11intnumber;12inti;1314srand(time(0));151......
  • 实验2 c语言分支与循环基础应用编程
    实验1实验1的源代码1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55#defineN13746#defineN24657intmain(){8intnumber;9inti;1011srand(time(0));//以当前系统时间作为随机种子1213for(i=0;i<N;++i......