通过正则表达式检查ICD10

时间:2015-09-22 14:59:34

标签: regex

我需要检查此代码生成的icd10代码,条件很少

  1. min length是3。
  2. 第一个字符是字母而不是' U'。
  3. 第二和第三是数字。
  4. 第四是点(。)
  5. 第五到八个字符是字母或数字。
  6. 例如:

    右:" A18.32"," A28.2"," A04.0"," A18.R252",& #34; A18"," A18.52"," R18"," R18。"

    错误:" A184.32"," U18"," 111。"

4 个答案:

答案 0 :(得分:7)

这是一个你想要验证的icd-10-cm代码。

如果是这样我相信第3位数字是字母或数字

取自第7页 https://www.cms.gov/Medicare/Coding/ICD10/downloads/032310_ICD10_Slides.pdf

如果是这样,以下正则表达式应该验证。

^([a-tA-T]|[v-zV-Z])\d[a-zA-Z0-9](\.[a-zA-Z0-9]{1,4})?$

否则你可以编辑上面的正则表达式来检查字符2和3是否为数字。

^([a-tA-T]|[v-zV-Z])\d{2}(\.[a-zA-Z0-9]{1,4})?$

答案 1 :(得分:2)

试试这个:

\b[a-tv-zA-TV-Z]\d{2}(\.[a-zA-Z0-9]{,4})?\b

我假设你的例子中的点和它之后的所有内容都是可选的

此正则表达式将匹配单词边界\b,除了u或U [a-tv-zA-TV-Z]以外的字母,两位数\d{2},然后是一个可选的点后跟0-4个字母或数字{ {1}}和第二个字边界(\.[a-zA-Z0-9]{,4})?

答案 2 :(得分:2)

您可以尝试这样的事情: override func layoutSubviews() { super.layoutSubviews() self.frame = CGRectOffset(self.frame, 0, 10); } 。有一个例子here

答案如何满足您的条件:

  1. 最小长度为3:^[A-TV-Z]\d{2}(\.[A-Z\d]{0,4})?$尝试匹配字母和2位数。 ^[A-TV-Z]\d{2}...$^确保字符串中没有其他内容不满足正则表达式。此细分受众群$(\.[A-Z\d]{0,4})?运算符?包围。这意味着圆括号内的内容可能存在也可能不存在。
  2. 第一个字是字母而不是' U'。 (...)?符合此要求,该[A-TV-Z]匹配ATVZ之间的所有大写字母。这省略了字母U
  3. 第二和第三是数字。 \d{2}表示匹配两位数字。
  4. 第四个是点(。):\.满足此要求。需要额外的\,因为句点字符是正则表达式中的特殊字符,这意味着匹配任何字符(例外情况除外,除非传递特殊选项)。
  5. 五到八个字符是字母或数字。 [A-Z\d]{0,4}表示任何字母或数字,重复0到4次。

答案 3 :(得分:-1)

使用此exp简单:

'^([A-TV-Za-tv-z]{1}[0-9]{1}[A-Za-z0-9]{1}|[A-TV-Za-tv-z]{1}[0-9]{1}[A-Za-z0-9]{1}.[A-Za-z0-9]{1,4})$'