[英]Regular expression to make non-greedy
我有这样的文字
EXPRESS blood| muscle| testis| normal| tumor| fetus| adult
RESTR_EXPR soft tissue/muscle tissue tumor
现在我只想提取 EXPRESS 行中的最后一项,即adult
。
我的模式是:
[|](.*?)\n
代码贪得无厌muscle| testis| normal| tumor| fetus| adult
muscle| testis| normal| tumor| fetus| adult
muscle| testis| normal| tumor| fetus| adult
。 我能知道是否有办法解决这个问题吗?
在匹配 pipe 字符后跟可选空格后,您可以采用捕获组值排除匹配 pipe 字符。
如果字符串末尾必须有一个换行符:
\|[^\S\n]*([^|\n]*)\n
解释
\|
匹配|
[^\S\n]*
匹配不带换行符的可选空白字符(
捕获组 1
[^|\n]*
匹配除|
之外的可选字符或换行)
关闭组 1\n
匹配一个换行符或者断言字符串的结尾:
\|[^\S\n]*([^|\n]*)$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.