包括下一个句点或逗号之前的所有内容(包括 "ca.")
include everything (including "ca.") up to next period or comma
我将使用 regex101.com 中使用的语法,但我的代码在 R 中。
取以下字符串:
a) LVEF estimated to be highly impaired (ca. 20 %). blabla
b) LVEF highly impaired. blabla
我的正则表达式
(?=LVEF)([^,|.]*)
returns
a) LVEF estimated to be highly impaired (ca
b) LVEF highly impaired
我可以包含 "ca." 但排除所有其他“.”吗?
谢谢!
如果支持正后向 (?<=
,您可以添加一个可选部分来匹配一个点,前提是前面是 ca
\bLVEF\b[^.]*(?:(?<=ca)\.)?
说明
\bLVEF\b
在字边界之间匹配 LVEF
[^.]*
匹配 0 次以上出现的除点以外的任何字符
(?:
非捕获组
(?<=ca)\.
正向后视,断言左边是ca
,然后匹配一个.
)?
关闭非捕获组并使其可选
编辑:
如果你想匹配 (ca. 20 %)
你可以匹配除点以外的任何字符或匹配一个点断言直接在左边的是 ca
\bLVEF\b[^.]*(?:(?<=ca)\.[^.]*)?
\bLVEF\b
匹配 LVEF
[^.]*
匹配 0 次以上出现的除点以外的任何字符
(?:
非捕获组
(?<=ca)\.
只匹配前面有 ca
的点
[^.]*
匹配除点以外的任何字符的尾随 0+ 次出现
)?
关闭组并使其可选
我将使用 regex101.com 中使用的语法,但我的代码在 R 中。
取以下字符串:
a) LVEF estimated to be highly impaired (ca. 20 %). blabla
b) LVEF highly impaired. blabla
我的正则表达式
(?=LVEF)([^,|.]*)
returns
a) LVEF estimated to be highly impaired (ca
b) LVEF highly impaired
我可以包含 "ca." 但排除所有其他“.”吗?
谢谢!
如果支持正后向 (?<=
,您可以添加一个可选部分来匹配一个点,前提是前面是 ca
\bLVEF\b[^.]*(?:(?<=ca)\.)?
说明
\bLVEF\b
在字边界之间匹配 LVEF[^.]*
匹配 0 次以上出现的除点以外的任何字符(?:
非捕获组(?<=ca)\.
正向后视,断言左边是ca
,然后匹配一个.
)?
关闭非捕获组并使其可选
编辑:
如果你想匹配 (ca. 20 %)
你可以匹配除点以外的任何字符或匹配一个点断言直接在左边的是 ca
\bLVEF\b[^.]*(?:(?<=ca)\.[^.]*)?
\bLVEF\b
匹配 LVEF[^.]*
匹配 0 次以上出现的除点以外的任何字符(?:
非捕获组(?<=ca)\.
只匹配前面有ca
的点
[^.]*
匹配除点以外的任何字符的尾随 0+ 次出现
)?
关闭组并使其可选