Stata18.0新功能4 | 您所在的位置:网站首页 › 从字符串提取数据 › Stata18.0新功能4 |
原标题:Stata18.0新功能4--全新字符串函数及正则表达式 Stata18.0新功能4--全新字符串函数及正则表达式 新的基于 Boost 的正则表达式函数 允许不同的正则表达式语法 新的基于 Boost 的正则表达式函数 允许不同的正则表达式语法 正则表达式是处理字符串数据的强大工具。Stata 的正则表达式在 Stata 18 中变得更加强大,具有更多功能。 ->概述-> 让我们看看它的工作原理-> 告诉我更多 1、概述 正则表达式用于 数据验证,例如,检查电话号码的格式是否正确; 数据提取,例如,从字符串中提取电话号码;和 数据转换,例如,规范化不同的电话号码输入。 数据验证,例如,检查电话号码的格式是否正确; 数据提取,例如,从字符串中提取电话号码;和 数据转换,例如,规范化不同的电话号码输入。 Stata 提供了两组正则表达式函数:byte-stream-based regexm, regexr, and regexs; and Unicode-based ustrregexm, ustrregexrf, ustrregexra, and **ustrregexs 。基于 Unicode 的正则表达式函数构建在 ICU 库之上。 在 Stata 18 中,基于byte-stream-based functions字节流的函数已更新为使用 Boost 库作为引擎。这些函数由用户版本控制,如果用户指定 版本 17:则保留旧行为。 Stata 18 中的新实现具有更多功能。例如,新的实现支持 {n} 来匹配正则表达式 n 次: . display regexm( "123", "\d{3}") 1 . version 17: display regexm( "123", "\d{3}") 展开全文0 添加了一组专门使用 Boost 库的新功能: regexmatch执行正则表达式与 ASCII 字符串的匹配。 regexreplace将正则表达式与指定文本匹配的第一个子字符串替换。 regexreplaceall将所有与正则表达式匹配的子字符串替换为指定的文本。 regexcapture返回来自前一个匹配项的子表达式。 regexcapturenamed返回一个子表达式,该子表达式对应于上一个匹配项正则表达式中的匹配命名组。 regexmatch执行正则表达式与 ASCII 字符串的匹配。 regexreplace将正则表达式与指定文本匹配的第一个子字符串替换。 regexreplaceall将所有与正则表达式匹配的子字符串替换为指定的文本。 regexcapture返回来自前一个匹配项的子表达式。 regexcapturenamed返回一个子表达式,该子表达式对应于上一个匹配项正则表达式中的匹配命名组。 我们希望匹配和提取政府首脑地址中的电话号码。 我们需要以下规则: 电话号码跟在“电话:”或“电话:”后面。 它可能以“+”开头。 在“+”之后或开头,它有 1 到 3 个非零数字。 之后,它可以有 7 到 32 位数字、空格或“-”。 电话号码跟在“电话:”或“电话:”后面。 它可能以“+”开头。 在“+”之后或开头,它有 1 到 3 个非零数字。 之后,它可以有 7 到 32 位数字、空格或“-”。 我们想为提取的电话号码生成一个变量 phone,如果地址匹配,则不包含“Phone:”或“tel:”。 我们想生成另一个变量 address1,将电话号码替换为上面提取的电话号码,后跟“tel:”。 我们看到第三个地址不包含“Phone:”或“tel:”,因此与正则表达式不匹配,因此此观察缺少 电话。 返回搜狐,查看更多 责任编辑: |
CopyRight 2018-2019 实验室设备网 版权所有 |