使用Regex和PHP分隔/分组纯文本 [英] Separate/Group plain text with Regex and PHP

查看:114
本文介绍了使用Regex和PHP分隔/分组纯文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以使用Regex将数据与下面的纯文本分开。

I can separate data from the plain text below with Regex.

推荐答案

您可能会使用 preg_split 可以获取所有开头带有正确字符的字符串,例如 190.A A。

What you might do is use preg_split to get all the strings with the right characters at the start like 190.A or A.

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




  • \b 字边界

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


    • (?: \d + | [AZ])匹配1个以上的数字或一个字符AZ

    • \。[AZ] 匹配和单个字符AZ

      • \b Word boundary
      • (?= Positive lookahead, assert what is on the right is
        • (?:\d+|[A-Z]) Match either 1+ digits or a single char A-Z
        • \.[A-Z] Match . and a single char A-Z
        • 正则表达式演示 | Php演示

          如果您在数组,例如,您可以使用 array_reduce 来获取JSON输出所需的数组结构。

          If you have all those entries in an array, you could for example use array_reduce to the get array structure that you need for the json output.

          $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"
                  ]
              }
          ]
          

          这篇关于使用Regex和PHP分隔/分组纯文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆