我如何删除一个先于字符的单词以及字符本身 我正在使用importXML获取一些数据,然后再发行以拉出一些文本。我要提取的部分是一个名称。 它总是遵循“全名:”(减去报价)。 名字之后,...

问题描述 投票:0回答:4

=IFERROR(REGEXEXTRACT(REGEXREPLACE(JOIN(" ", IMPORTXML(B13, "//div[@id='meta']")), "\s+", " "), "Full Name:\s*([A-Za-z]+(?:[-'\s][A-Za-z]+)*)"), "")

不幸的是,那仍然留下了最后一句话。

因此,如果您有:

Full名称:亚伯拉罕·林肯(Abraham Lincoln)昵称:诚实安倍晋三

我只希望它拉出亚伯拉罕·林肯。我拥有的该公式输出:

ABRAHAMLINCOLN昵称
其他例子:

Full名称:John Smith-Rogers完成:

Full名称:David Ben-Williams Prelude:

Full名称:Sean O'Brian昵称:

Full名称:D'Andre Ayton时间:

Full名称:Andy van Slyke名称:

尊敬的输出:

约翰·史密斯·罗格斯(John Smith-Rogers) david ben-williams

seanO'Brian

d'd'andreAyton
    anandy vanslyke
  • 为现场示例:
  • https://www.baseball-reference.com/players/l/lopezal01.shtml
  • 公式应输出: 阿方索·拉蒙·洛佩兹(Alfonso Ramon Lopez)
  • https://www.baseball-reference.com/players/r/ruthba01.shtml

公式应输出: 乔治·赫尔曼·露丝(George Herman Ruth)

我还需要做什么,我想确保像O'Brien和Smith-Rogers这样的名字不会受到影响?
  • =REGEXEXTRACT(A1,"Full Name:\s+(.*?)\s+[^:\s]+:")
  • Full Name:
  • 字面意思
  • Full Name
  • 之后是一个字面的结肠
  • :

\s+

一个或多个空间

(.*?)捕获第1组懒惰的角色。

\s+

一个或多个空间

"[^:\s]+:
regex google-sheets
4个回答
0
投票
:
或pap的角色,然后是字面的结肠
s
  •     
    this方法使用给定
    :
    的略有变化,然后提取
    fullname
  • xpath-query
  • 您提供了以下示例,我制定了一个解决方案,该解决方案可能会在您的目的中起作用。
    trone这句话:
  • =let(Σ,tocol(importxml(A2,"//*[@id='meta']/*")), +sort(regexextract(Σ,"Full Name: (.+)")))
    
    
    **
    update:
    在给定的示例网站上,上面更新的公式使用的是以下是以下的词,以“全名:”和
    以一个单词的“视图”或另一个结肠结尾(也
    无视它之前的单词)
    Reference:
    regexextract

0
投票
try匹配:

=IFERROR(REGEXEXTRACT(REGEXREPLACE(JOIN(" ", IMPORTXML(B18, "//div[@id='meta']")), "\s+", " "), "Full Name:\s(.*?)(?:\s\w+:|\sView)"), "")
替换:

:
请参见:

regex101enter image description here

解释

0
投票

^Full Name: ([^:]+?) \w+:$ :字符串以字面的“全名:”开头

$1
:然后将所有内容捕获到第1组

^Full Name: :不是结肠(懒洋洋),并确保它


( ... ):由一个空间接替一个词,该单词跟随船柱。 Replace:

$ 1:替换为全名。

-1
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.