用于确定字母数字代码是否在范围内的正则表达式

Regex for determining if Alphanumeric code is in range

我正在开发 ICD10 诊断代码应用程序。我需要确定一个 ICD10 代码是否落在某个范围内。例如:

代码:4A1H7EZ

范围: 4A1H7CZ - 4A1H7HZ

这应该 return 'True'。

我尝试将字母字符转换为数字(a=0、b=1 等),但生成的数字与其他数字冲突 ranges/codes。

正则表达式不是我的强项,如有任何建议,我们将不胜感激。

您应该使用循环并逐个比较每个索引。诸如此类:

for entry, index in code:
  if entry.isNumeric:
      if range[index] < entry and rang2[index] > entry:
         return false

  else
      if compareAlpha(range[index], entry) > 1 and compareAlpha(range2[index], entry ) < 0:
         return false
return true

(未测试)

David 在 Javascript 中给出了正确的答案。

但是,"ICD10 diagnosis code application" 可能应该 使用数据库;鉴于此,你真的应该用 SQL 来解决这个问题,在这种情况下,这将是微不足道的。

这样的查询会 return 匹配给定代码的任何范围:

select * from ranges where diag_code between range_start and range_end

你必须使用正则表达式吗? 正如在 comparing 2 strings alphabetically for sorting purposes 中所见 javascript 自动比较字符串。

所以"4A1H7EZ" > "4A1H7CZ" && "4A1H7EZ" < "4A1H7HZ"会returntrue