如何在以下行中找到foobar
:
something_something_$20_foobar
something_something_$20_foobar_something
something_something_something_$20_foobar_something
something_something_$1.5_foobar
something_something_$1.5_foobar_something
您只知道foobar
将出现在一个下划线后面,后面是一个带美元符号(整数或浮点数)的数字,之后是另一个下划线或行尾。
我尝试了\$.+_(.+)$
(在第1行和第4行查找foobar
)和\$.+_(.+)_
(在第2行、第3行和第5行查找foobar
)。
所以你会认为\$.+_(.+)[$_]
或\$.+_(.+)($|_)
会在所有行中找到它,但它们都只在某些行中找到它,并在其他行中找到错误的单词。
3条答案
按热度按时间t1rydlwq1#
您可以使用此正则表达式:
RegEx Demo
RegEx详细信息:
\$
:匹配$
\d+
:匹配1+位(?:\.\d+)?
:匹配小数点后可选部分_
:匹配_
([^_\n]+)
:捕获组#1以匹配任何非_
且非换行符的字符的1+lo8azlld2#
在工作表中,要在整个范围内应用正则表达式作为
arrayformula
样式,请使用:或者对于独立单元格,您可以直接使用:
yzckvree3#
使用GNU
grep
:正则表达式匹配如下:
(?<=\d_)
_
[a-z]+
online demo