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”)
这将在给定字符串中找到以ab
开头的任何字符加上任何字符(非贪婪),直到第一次出现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图标。干杯