2

在 Google Docs 中,如果我有一系列字符串,例如“Something.Here.Search.Term.Chicago”,其中“Term”之后的最后一个组件。可以是任何东西。

如何使用正则表达式提取仅捕获“术语”之后的内容?

请注意,字符串的长度在 Term 之前会有所不同,因此我不能使用 Left 或 Right 和 position,因为它总是不同的。

4

5 回答 5

3

您也可以使用积极的后视,以避免必须与组一起捕获:

/(?<=Term\.).*/

尽管取决于您实现此功能的语言,它可能不支持后视(即 JavaScript)。

于 2013-03-20T19:16:06.683 回答
1

如果你不想搞乱捕获组,并且你知道你想要的组件是字符串最后一个.和结尾之间的子字符串,你可以使用

[^.]+$
于 2013-03-20T19:16:11.420 回答
0

我不知道 Google Docs,但通常在正则表达式中,你会这样做

"Something\.Here\.Search\.Term\.(.*)"

()手段捕捉并记住其中的模式。在这种情况下.*意味着一切。您通常可以$1在 Javascript 中以 等方式访问模式。

请参阅正则表达式示例

于 2013-03-20T19:13:55.297 回答
0

这是使用您的示例数据对我有用的方法:

=REGEXREPLACE(A1; ".*Term.(.*)" ; "$1")
于 2013-03-20T19:35:29.140 回答
0

使用“前瞻”表达式(?=),然后在单词边界之后重复某些内容怎么样?

像这样的东西:

(?=Term\\.).*\W
于 2014-01-05T15:20:58.100 回答