2016-04-13 8 views
0

私は人のリストを持っていますが、中には最初の名前があり、最初には名があります。最初のグループが最初の名前だけと一致する正規表現を作成したいと思います。末尾の中間のイニシャルを正規表現で削除する

いくつかの例:

  • "ベントン" - > "ベン"
  • "リサ・アンのT" - > "リサ・アン"
  • "ベン" - > "ベン"

末尾の中間のイニシャルを削除したければ、これは(.*)(.)のようなもので簡単にできますが、中間のイニシャルが常に存在するかどうかはわかりません。私はPostgresでこれをやっています。

答えて

0

はこれを試してみてください:

SELECT regexp_replace('Lisa Ann t', '\\s\\S+$', ''); 
+0

これは ' 'リサ・アンのt''を返します。しかし、それを '$。'に変更することもあります。 – Xodarap

+0

@Xodarap Strange、それは私のために働きます。正規表現は正しいです... – silkfire

0

これはcaseと文字列操作を使用して行うのは簡単です:

select (case when firstname like '% _' then left(firstname, length(firstname) - 2) 
      else firstname 
     end) as firstname 
関連する問題