---
title: HubLで文字列内の単語の出現回数をカウントする｜Tips｜日本トップクラスのHubSpotテック企業 株式会社パンセ
description: 例えば「hogeふがピヨhogehogeふが」の文字列において、hogeが何回出て来るか？をカウントする方法です。自分の知る限りHubLにはこれを一発で処理できる関数やフィルタはないので、少し工夫することになります。
---

[ブログ](https://demo.100inc.co.jp/blog)

# [HubLで文字列内の単語の出現回数をカウントする｜Tips｜日本トップクラスのHubSpotテック企業 株式会社パンセ](https://demo.100inc.co.jp/blog/tips/count-specific-word-with-hubl)

 作成者: [Admin](https://demo.100inc.co.jp/blog/author/admin)｜Jun 23, 2021, 3:00:00 PM

例えば「hogeふがピヨhogehogeふが」の文字列において、hogeが何回出て来るか？をカウントする方法です。自分の知る限りHubLにはこれを一発で処理できる関数やフィルタはないので、少し工夫することになります。

発想としては「hogeの度に何かができれば良さそう」なので、splitフィルタを使います。一旦シンプルな例でいくと、「ふがhogeピヨ」に対してsplitフィルタを使用した場合、次のようになりhogeの出現回数を取得できます。

```

  
   1
   ↓
   1（hogeの出現回数）
  
```

分解して解説すると、まず `'ふがhogeピヨ'|split('hoge')` で `['ふが', 'ぴよ']` のリストができます。このリストのlengthから-1した値が、hogeの出現回数になります。

ただし厄介なのが最初の例で「hogeふがピヨhogehogeふが」に対し `|split('hoge')` すると、得られるリストは `[ふがピヨ, ふが]`になります。このリストのlength - 1は1なので、これはhogeの出現回数ではありません。要は行頭・行末の区切り文字や、連続する区切り文字があると期待通りの結果を得られないのです。

ではどうするかというと、先に区切り文字に何か適当な文字を付加しておきます。そのうえでsplitを行うと、期待通りの結果が得られます。

```

  
   3
   ↓
   3（hogeの出現回数）
  
```

そもそもHubLでこういう文字処理などしだすこと自体辛さがあるのですが、かといってしないと先に進めないこともありますので、ご参考までに。  
ちなみに配列であれば、[count関数](https://developers.hubspot.com/docs/cms/hubl/functions#count)が使え、「単に文字列中に特定の単語を含むかどうか」であれば、[string\_containing](https://developers.hubspot.com/docs/cms/hubl/operators-and-expression-tests#string-containing)が使えます。

[完全な記事を表示](https://demo.100inc.co.jp/blog/tips/count-specific-word-with-hubl)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Admin"
  },
  "dateModified" : "2022-12-30T06:41:33.251Z",
  "datePublished" : "2021-06-23T15:00:00Z",
  "headline" : "HubLで文字列内の単語の出現回数をカウントする",
  "image" : {
    "@type" : "ImageObject",
    "height" : 60,
    "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
    "width" : 60
  },
  "mainEntityOfPage" : "https://demo.100inc.co.jp/blog/tips/count-specific-word-with-hubl",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "ブログ"
  }
}
```