正则表达式问题:医学术语的标准化

RegEx question: standardization of medical terms

我需要将单词检测为 'bot/hersen/levermetastase' 并将它们转换为 'botmetastase, hersenmetastase, levermetastase'。 还要把'lever/botmetastase'改成'levermetastase, botmetastase'.

所以我需要确保“word/word/word 转移瘤”的数量尽可能多变。

这是我的解决方案,但它不起作用。

过滤:

\b(\w)\s*[\/]\s*(\w)\s*(metastase)\b 

过滤器:

metastase, metastase, metastase

您可以使用

/?(\w+)(?=(?:/\w+)+metastase\b)/?

替换为metastase (最后是space)。

如果斜线周围可以有 space,请使用

/?\s*(\w+)(?=(?:\s*/\s*\w+)+metastase\b)(?:\s*/)?
/?\h*(\w+)(?=(?:\h*/\h*\w+)+metastase\b)(?:\h*/)?

其中 \h 仅匹配水平白色 space 字符,而 \s 将匹配任何白色space 字符。

参见regex demo #1 and regex demo #2

详情

  • /? - 一个可选的 / 字符
  • (\w+) - 第 1 组:一个或多个单词字符
  • (?=(?:/\w+)+metastase\b) - 后面必须跟
    • (?:/\w+)+ - / 出现一次或多次,然后出现 1 个以上的字符
    • metastase\b-和metastase整个单词(\b是一个单词边界)
  • /? - 一个可选的 / 字符。