Regex 正则表达式查找字符解析直到空格或句点

Regex 正则表达式查找字符解析直到空格或句点,regex,Regex,我有一段文字,其中可能包括一个社交媒体帐户。我想要没有尾随空格或句号的帐户。这是使用谷歌工作表和regextract。到目前为止,我仍然得到返回的周期(如果它存在的话)。我正在搜索@然后要返回所有文本,直到空格或句点 这是我的公式: =if(REGEXMATCH(E2,"@"),REGEXEXTRACT(E2,"@.*?\s"),"No social handle") E2是我正在搜索的单元格。下面是一个示例文本:以前的foo,现在的blah blah blahr@socialaccount。

我有一段文字,其中可能包括一个社交媒体帐户。我想要没有尾随空格或句号的帐户。这是使用谷歌工作表和
regextract
。到目前为止,我仍然得到返回的周期(如果它存在的话)。我正在搜索
@
然后要返回所有文本,直到空格或句点

这是我的公式:

=if(REGEXMATCH(E2,"@"),REGEXEXTRACT(E2,"@.*?\s"),"No social handle")
E2
是我正在搜索的单元格。下面是一个示例文本:
以前的foo,现在的blah blah blahr@socialaccount。废话废话。你可以这样使用:

=if(REGEXMATCH(E2,"@"),REGEXEXTRACT(E2,"@.+?\b"),"No social handle")
它捕获所有非贪婪的内容,直到找到单词边界
\b
。我在自己的谷歌电子表格中进行了测试

一些解释

公式
REGEXEXTRACT
的工作方式是提取从regex模式开始到最后一个字符到regex模式的所有内容,例如:

  • REGEXEXTRACT(“blablebli”、“b?e”)
    这将在给定字符串中找到以
    b
    开头并以
    e
    结尾的任何内容,因此它将返回
    ble
  • REGEXEXTRACT(“bla-bleble-bli”,“b.+e”)
    这将在给定字符串中查找以
    b
    开头的任何字符加上任何字符(贪婪),直到找到
    e
    ,因此它将返回
    bleble
  • REGEXEXTRACT(“bla-bleble-bli”,“b.+?e”)
    这将在给定字符串中找到以a
    b
    开头的任何字符加上任何字符(非贪婪),直到第一次出现
    e
    ,因此它将返回
    ble
这种特殊的
\b
称为a(关于它的详细文章,请欣赏)

我对正则表达式的完整解释如下:

 @ matches the character @ literally (case sensitive)
   .+? matches any character (except for line terminators)
    +? Quantifier — Matches between one and unlimited times, as few 
                    times as possible, expanding as needed (lazy)
 \b assert position at a word boundary (^\w|\w$|\W\w|\w\W)
  • 解释

根据我的研究,
@.*?\s
实际上与stringHi匹配,这个答案对你有用吗?如果是,请考虑接受。您可以通过单击此面板左侧的V图标来执行此操作。谢谢。真希望我能明白这是怎么回事。就像魔法一样。(我正在寻找一个很好的参考。)让我编辑它,增加一些解释,主要是关于<代码> \b/c> @ BrkMARCOM,看一看:“享受”BRICKMARCOM,如果它对你有帮助,请考虑接受它。为此,请单击此答案左侧的V图标。干杯