正则表达式问题:医学术语的标准化
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
是一个单词边界)
/?
- 一个可选的 /
字符。
我需要将单词检测为 '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
是一个单词边界)
/?
- 一个可选的/
字符。