在 Google Docs 中,如果我有一系列字符串,例如“Something.Here.Search.Term.Chicago”,其中“Term”之后的最后一个组件。可以是任何东西。
如何使用正则表达式提取仅捕获“术语”之后的内容?
请注意,字符串的长度在 Term 之前会有所不同,因此我不能使用 Left 或 Right 和 position,因为它总是不同的。
在 Google Docs 中,如果我有一系列字符串,例如“Something.Here.Search.Term.Chicago”,其中“Term”之后的最后一个组件。可以是任何东西。
如何使用正则表达式提取仅捕获“术语”之后的内容?
请注意,字符串的长度在 Term 之前会有所不同,因此我不能使用 Left 或 Right 和 position,因为它总是不同的。
您也可以使用积极的后视,以避免必须与组一起捕获:
/(?<=Term\.).*/
尽管取决于您实现此功能的语言,它可能不支持后视(即 JavaScript)。
如果你不想搞乱捕获组,并且你知道你想要的组件是字符串最后一个.
和结尾之间的子字符串,你可以使用
[^.]+$
我不知道 Google Docs,但通常在正则表达式中,你会这样做
"Something\.Here\.Search\.Term\.(.*)"
()
手段捕捉并记住其中的模式。在这种情况下.*
意味着一切。您通常可以$1
在 Javascript 中以 等方式访问模式。
请参阅正则表达式示例
这是使用您的示例数据对我有用的方法:
=REGEXREPLACE(A1; ".*Term.(.*)" ; "$1")
使用“前瞻”表达式(?=)
,然后在单词边界之后重复某些内容怎么样?
像这样的东西:
(?=Term\\.).*\W