为了账号安全,请及时绑定邮箱和手机立即绑定

使用正则表达式和 PHP 分隔/分组纯文本

使用正则表达式和 PHP 分隔/分组纯文本

PHP
斯蒂芬大帝 2022-06-17 10:55:49
我可以使用正则表达式从下面的纯文本中分离数据。
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您可能会做的是使用preg_split来获取所有开头带有正确字符的字符串,例如190.AA.

\b(?=(?:\d+|[A-Z])\.[A-Z])
  • \b字边界

  • (?=正向前瞻,断言右边是

    • (?:\d+|[A-Z])匹配 1+ 位或单个字符 AZ

    • \.[A-Z]匹配.和单个字符 AZ

  • )关闭正向前瞻

正则表达式演示php演示

如果你在一个数组中有所有这些条目,你可以例如使用array_reduce来获取 json 输出所需的数组结构。

$pattern = "/\b(?=(?:\d+|[A-Z])\.[A-Z])/";

$result = preg_split($pattern, $data, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

$result = array_reduce($result, function($carry, $item){


    // If the string starts with a digit

    if (ctype_digit(substr($item, 0, 1))) {


        // Create the  questions key

        $carry[] = ["question" => $item];

        return $carry;

    }


    // Get reference to the last added array in $carry

    end($carry);

    $last = &$carry[key($carry)];


    // Create the answers key

    array_key_exists("answers", $last) ? $last["answers"][] = $item : $last["answers"] = [$item];

    return $carry;

}, []);


print_r(json_encode($result))

输出


[

    {

        "question": "190.A 42-year-old male patient has been delivered to a hospital in a grave condition with dyspnea, cough with expectoration of purulent sputum, fever up to 39,5 oC.The ?rst symptoms appeared 3 weeks ago. Two weeks ago, a local therapist diagnosed him wi- th acute right-sided pneumonia. Over the last 3 days, the patient\u2019s condition deteriorated: there was a progress of dyspnea, weakness, lack of appetite. Chest radiography con?rms a rounded shadow in the lower lobe of the right lung with a horizontal?uid level, the right si- nus is not clearly visualized. What is the most likely diagnosis? ",

        "answers": [

            "A.Abscess of the right lung ",

            "B.Acute pleuropneumonia ",

            "C.Right pulmonary empyema ",

            "D.Atelectasis of the right lung ",

            "E.Pleural effusion "

        ]

    },

    {

        "question": "191.An 11-year-old boy complains of general weakness, fever up to 38,2 oC, pain and swelli- ng of the knee joints, feeling of irregular heartbeat. 3 weeks ago, the child had quinsy. Knee joints are swollen, the overlying skin and skin of the knee region is reddened, local temperature is increased, movements are li- mited. Heart sounds are muf?ed, extrasystole is present, auscultation reveals apical systolic murmur that is not conducted to the left ingui- nal region. ESR is 38 mm\/h. CRP is 2+, anti- streptolysin O titre - 40 0. What is the most likely diagnosis? ",

        "answers": [

            "A.Acute rheumatic fever ",

            "B.Vegetative dysfunction ",

            "C.Non-rheumatic carditis ",

            "D.Juvenile rheumatoid arthritis ",

            "E.Reactive arthritis "

        ]

    },

    {

        "question": "192.A 28-year-old male patient complains of sour regurgitation, cough and heartburn that occurs every day after having meals, when bending forward or lying down. These problems have been observed for 4 years. Objective status and laboratory values are normal. FEGDS revealed endoesophagitis. What is the leading factor in the development of this disease? ",

        "answers": [

            "A.Failure of the lower esophageal sphincter ",

            "B.Hypersecretion of hydrochloric acid ",

            "C.Duodeno-gastric re?ux ",

            "D.Hypergastrinemia ",

            "E.Helicobacter pylori infection "

        ]

    },

    {

        "question": "193.On admission a 35-year-old female reports acute abdominal pain, fever up to 38,8 oC, mucopurulent discharges. The pati- ent is nulliparous, has a history of 2 arti?cial abortions. The patient is unmarried, has sexual Krok 2 Medicine 20 14 24 contacts. Gynecological examination reveals no uterus changes. Appendages are enlarged, bilaterally painful. There is profuse purulent vaginal discharge. What study is required to con?rm the diagnosis? ",

        "answers": [

            "A.Bacteriologic and bacteriascopic studies ",

            "B.Hysteroscopy ",

            "C.Curettage of uterine cavity ",

            "D.Vaginoscopy ",

            "E.Laparoscopy"

        ]

    }

]


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信