Postgresqlでイニシャルを処理する

フアンペレス

句読点やスペースが間にある場合は、イニシャル(最大2文字)をまとめたいと思います。

ほとんどすべてに取り組むために次のスニペットがありますが、句読点とスペースで区切られたイニシャルをまとめるのに問題があります。たとえば、これは通常の正規表現では機能しますが、postgresqlでは機能しません。

SELECT regexp_replace('R Z ELEMENTARY SCHOOL', 
                      '(\b[A-Za-z]{1,2}\b)\s+\W*(?=[a-zA-Z]{1,2}\b)', 
                      '\1')

結果は「RZELEMENTARYSCHOOL」になるはずです。その他の例は次のとおりです。

A & D ALTERNATIVE EDUCATION
J. & H. KNOWLEDGE DEVELOPMENT
A. - Z. EVOLUTION IN EDUCATION

変換は次のようになります。

AD ALTERNATIVE EDUCATION
JH KNOWLEDGE DEVELOPMENT
AZ EVOLUTION IN EDUCATION

Postgresqlでこれを達成する方法は?

ありがとう

WiktorStribiżew

あなたの現在の正規表現に基づいて、私はお勧めできます

SELECT REGEXP_REPLACE(
    REGEXP_REPLACE('J. & H. KNOWLEDGE DEVELOPMENT', '\m([[:alpha:]]{1,2})\M\s*\W*(?=[[:alpha:]]{1,2}\M)', '\1'),
    '^([[:alpha:]]+)\W+',
    '\1 '
)

参照してくださいオンラインデモを得、

    regexp_replace
1   JH KNOWLEDGE DEVELOPMENT

これは2段階のソリューションです。最初の正規表現の一致

  • \m([[:alpha:]]{1,2})\M-グループ1にキャプチャされた1文字または2文字の単語全体(\m先頭の\M単語の境界であり、末尾の単語の境界です)
  • \s* -ゼロ個以上の空白
  • \W* -単語以外の文字が0個以上
  • (?=[[:alpha:]]{1,2}\M) -現在の位置のすぐ右側に1文字または2文字の単語全体を必要とする前向きな先読み。

一致はグループ1(\1)の内容に置き換えられます。

2番目の正規表現は、文字列の先頭にある文字の単語と一致し、その後のすべての非単語文字をスペースに置き換えます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Rシャイニー:データテーブルのアクションボタンを処理する

分類Dev

NULL状態を処理するためのflexdashboardモーダルシャイニー反応性を取得できません

分類Dev

SKScene内でシェイクジェスチャを処理する

分類Dev

CircleCIでクレデンシャルを処理する-Railsアプリ

分類Dev

PHP: ファイル処理と SQL で ' と " を処理する

分類Dev

C ++でcharをintにキャストする方法は?(ファイル処理)

分類Dev

バックボーンマリオネットモジュールは非推奨ですが、イニシャライザーと開始イベントを処理するための良い代替手段は何ですか?

分類Dev

プロット:アニメーションチャートで欠落値を処理する

分類Dev

OpenGLでテクスチャアニメーションを処理する方法は?

分類Dev

Elasticsearchで大量のシャードを処理する

分類Dev

MS WordVBAでマルチバイトシンボルを処理する方法

分類Dev

Androidモバイルでシリアルポートを処理する方法は?

分類Dev

シェル内のスペースでファイル名を処理する

分類Dev

Elixirでイニシャルアバターを生成する

分類Dev

Swiftでゲームのイニシャルを要求する方法

分類Dev

C でパイプを処理してシェルを作成する

分類Dev

Rシャイニーは.pgpassでPostgreSQL認証を破る

分類Dev

ライブデータをシーケンシャルプロミスとして処理する方法

分類Dev

JFace LabelProvidersでWindowsシェルアイコンを処理する方法は?

分類Dev

spark-sqlでシーケンスファイルを処理する方法

分類Dev

UITableViewセルでパンジェスチャを処理する

分類Dev

大きなcsvファイルの処理を処理する方法または大きなCSVファイルをチャンクで読み取る方法

分類Dev

春のソーシャルFacebookで発生するExpiredAuthorizationExceptionを処理する方法は?

分類Dev

大きなファイルをチャンクで処理する:readlineでの一貫性のないシーク

分類Dev

GDBですべてのシグナルを処理する方法

分類Dev

異なるタイプのパブリッシャーを処理する

分類Dev

Xamarinフォームでバックナビゲーションを処理/キャンセルする方法

分類Dev

mySQLプロシージャループで見つからないデータを処理する

分類Dev

ユニークなイニシャルを抽出する方法

Related 関連記事

  1. 1

    Rシャイニー:データテーブルのアクションボタンを処理する

  2. 2

    NULL状態を処理するためのflexdashboardモーダルシャイニー反応性を取得できません

  3. 3

    SKScene内でシェイクジェスチャを処理する

  4. 4

    CircleCIでクレデンシャルを処理する-Railsアプリ

  5. 5

    PHP: ファイル処理と SQL で ' と " を処理する

  6. 6

    C ++でcharをintにキャストする方法は?(ファイル処理)

  7. 7

    バックボーンマリオネットモジュールは非推奨ですが、イニシャライザーと開始イベントを処理するための良い代替手段は何ですか?

  8. 8

    プロット:アニメーションチャートで欠落値を処理する

  9. 9

    OpenGLでテクスチャアニメーションを処理する方法は?

  10. 10

    Elasticsearchで大量のシャードを処理する

  11. 11

    MS WordVBAでマルチバイトシンボルを処理する方法

  12. 12

    Androidモバイルでシリアルポートを処理する方法は?

  13. 13

    シェル内のスペースでファイル名を処理する

  14. 14

    Elixirでイニシャルアバターを生成する

  15. 15

    Swiftでゲームのイニシャルを要求する方法

  16. 16

    C でパイプを処理してシェルを作成する

  17. 17

    Rシャイニーは.pgpassでPostgreSQL認証を破る

  18. 18

    ライブデータをシーケンシャルプロミスとして処理する方法

  19. 19

    JFace LabelProvidersでWindowsシェルアイコンを処理する方法は?

  20. 20

    spark-sqlでシーケンスファイルを処理する方法

  21. 21

    UITableViewセルでパンジェスチャを処理する

  22. 22

    大きなcsvファイルの処理を処理する方法または大きなCSVファイルをチャンクで読み取る方法

  23. 23

    春のソーシャルFacebookで発生するExpiredAuthorizationExceptionを処理する方法は?

  24. 24

    大きなファイルをチャンクで処理する:readlineでの一貫性のないシーク

  25. 25

    GDBですべてのシグナルを処理する方法

  26. 26

    異なるタイプのパブリッシャーを処理する

  27. 27

    Xamarinフォームでバックナビゲーションを処理/キャンセルする方法

  28. 28

    mySQLプロシージャループで見つからないデータを処理する

  29. 29

    ユニークなイニシャルを抽出する方法

ホットタグ

アーカイブ