【问题标题】:How to extract characters left of a number in a string?如何提取字符串中数字左边的字符?
【发布时间】:2023-02-25 04:32:28
【问题描述】:

我在 Stata 中有一组我想要标准化的药物描述符。我想提取在字符串的第一个或两个单词中找到的药物名称。名称后跟一个数字,可以是整数、百分比或范围。有没有办法提取字符串中数字之前的字符串部分?我想要完成的事情如下所示:

drug_name new_name
SM MICONAZOLE 3 COMBO PACK SM MICONAZOLE
SM SALINE 0.65% NASAL SPRAY SM SALINE
SM SINUS 12HR 120 MG CAPLET SM SINUS 12HR
SM MOTION SICKNESS 25 MG TAB SM MOTION SICKNESS
ATENOLOL-CHLORTHAL 50-25 TB ATENOLOL-CHLORTHAL
OXYMORPHONE HCL 10 MG TABLET OXYMORPHONE HCL
D-AMPHETAMINE ER 10 MG CAPSULE D-AMPHETAMINE ER
LISINOPRIL-HYDROCHLOROTHIAZIDE 20-25 MG TAB LISINOPRIL-HYDROCHLOROTHIAZIDE
SOD SULFACE-SULF 9.8-4.8% CLSR SOD SULFACE-SULF

【问题讨论】:

  • 可以使用支持正则表达式的语言/工具来完成。 “从头到第一位”很容易实现。

标签: stata


【解决方案1】:

您的问题的一个很好的解决方案是正则表达式。

正则表达式简介:https://www.sitepoint.com/learn-regex/

你可以在这里阅读如何在 stata 中使用它们:https://www.stata.com/support/faqs/data-management/regular-expressions/

您要查找的正则表达式为 "(.+) [dW]+ ",并从第一个捕获组中取出文本。

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 2016-11-05
    • 2012-03-03
    • 1970-01-01
    • 2020-11-20
    • 2019-06-03
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多