用于确定字母数字代码是否在范围内的正则表达式
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
我正在开发 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