截取字符串的一些东东

ORACLE 截取字符串


文字列の一部を切り出すには、SUBSTR関数またはSUBSTRB関数を使用します。

SUBSTR(文字列 , 開始位置 ) 文字列 の開始位置 から後ろの文字列を返します
SUBSTRB(文字列 , 開始位置 )
SUBSTR(文字列 , 開始位置 , 文字数 ) 文字列 の開始位置 から文字数分の文字を返します
SUBSTRB(文字列 , 開始位置 , バイト数 ) 文字列 の開始位置 からバイト数分の文字を返します

※SUBSTRとSUBSTRBの違い
SUBSTRが文字列の位置を文字数で扱うことに対して、SUBSTRBは文字列の位置をバイト数で扱います。

例1) 文字列'あいうえお'の3文字目以降の文字列を返します。(SUBSTR)
select
  substr('あいうえお',3)
 from dual

結果は、'うえお'が返されます。


例2) 文字列'あいうえお'の3バイト目以降の文字列が返されます。(SUBSTRB)
select
  substrb('あいうえお',3)
 from dual

 結果は、'いうえお'が返されます。


例3) 文字列'あいうえお'の3文字目から2文字返されます。(SUBSTR)
select
  substr('あいうえお',3,2)
 from dual

 結果は、'うえ'が返されます。


例4) 文字列'あいうえお'の3バイト目から2バイト返されます。(SUBSTRB)
select
  substrb('あいうえお',3,2)
 from dual

 結果は、'い'が返されます。


例5)文字列'あいうえお'の最後から2文字目以降の文字列を返します。(SUBSTR)
select
  substr('あいうえお',-2)
 from dual

 結果は、'えお'が返されます。
※開始位置に負の数を指定すると、文字列の最後から検索されます。

SQL Server 截取字符串


SQL Server 2005 Books Online<!---->

SUBSTRING (Transact-SQL)<!---->
<!--Content type: DocStudio. Transform: devdiv2mtps.xslt.-->

文字、バイナリ、テキスト、またはイメージ型の式の一部を返します。SQL Server 2005 で、この関数と一緒に使用できる有効なデータ型の詳細については、「データ型 (Transact-SQL)」を参照してください。

A. SUBSTRING に文字列を使用する

文字列定数 abcdef の 2 番目、3 番目、および 4 番目の文字を表示するには、次のようにします。

            
            
SELECT x = SUBSTRING ( ' abcdef ' , 2 , 3 )

以下に結果セットを示します。

            
            
x
-- --------
bcd

(
1 row(s)affected)

B. SUBSTRING に text、ntext、および image 型のデータを使用する

次の例では、pubs データベースにある pub_info テーブルの text および image データ列から、それぞれ最初の 200 文字を返します。text データは varchar として返され、image データは varbinary として返されます。

USE pubs
SELECT pub_id, SUBSTRING (logo, 1 , 10 ) AS logo,
SUBSTRING (pr_info, 1 , 10 ) AS pr_info
FROM pub_info
WHERE pub_id = ' 1756 '

以下に結果セットを示します。

            
            
pub_idlogopr_info
-- ------------------------------------
1756 0x474946383961E3002500 This is sa

(
1 row(s)affected)

次の例では、text データと ntext データの両方に対する SUBSTRING の効果を示します。この例では最初に、npub_info という名前の pubs データベースに新しいテーブルを作成します。次に、pub_info.pr_info 列の最初の 80 文字から npub_info テーブルの pr_info 列を作成し、最初の文字として ü を追加します。最後に、INNER JOIN を使って、text および ntext の両方のパブリッシャ情報列から、すべてのパブリッシャ ID 番号と SUBSTRING を取得します。

            
            

PostgreSQL 截取字符串


-- POSTGRESQL
select
-- "華23人民"
substring ( ' 中華23人民共和国 ' , 2 , 5 ) as a,
-- "華2人3民"
substring ( ' 中華2人3民共和国 ' , 2 , 5 ) as b,
-- "中華2人"
substring ( ' 中華2人3民共和国 ' , 0 , 5 ) as c,
-- "中華2人3"
substring ( ' 中華2人3民共和国 ' , 1 , 5 ) as d;


.NET 截取字符串
            
            
<script type="text/Javascript"> var ExpCollDivStr = ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl13bbe24e5,"; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl13img,"; </script>
<script type="text/Javascript"> var ExpCollDivStr = ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl15ac4267f,"; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl15img,"; </script>

从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。

命名空间:System
程序集:mscorlib(在 mscorlib.dll 中)

Collapse 图像语法

VisualBasic(用法)
Dim instance As String
Dim startIndex As Integer
Dim length As Integer
Dim returnValue As String

returnValue
= instance.Substring(startIndex,length)
C#
public string Substring(
int startIndex,
int length
)

startIndex 子字符串的起始位置的索引。

length子字符串中的字符数。

返回值
一个 String,它等于此实例中从 startIndex 开始的长度为 length 的子字符串,如果 startIndex 等于此实例的长度且 length 为零,则为 Empty。

Collapse 图像异常

异常类型 条件

ArgumentOutOfRangeException

startIndexlength 之和指示一个不在此实例内的位置。

- 或 -

startIndexlength 小于零。

Collapse 图像备注

startIndex 从零开始。

<ktable keywords="tt_M:System.String.Substring(System.Int32,System.Int32)" disambiguator="table" xmlns:mshelp="http://msdn.microsoft.com/mshelp" indexmoniker="!DefaultDynamicLinkIndex" topicheader="主题" locheader="位置"></ktable>

Collapse 图像示例

下面的代码示例在三种情况下使用 Substring 方法,在字符串中分隔子字符串。在两种情况下,在比较中使用子字符串,在第三种情况下,由于指定的参数无效而引发异常。

Visual Basic

Dim myString As String = " abc "
Dim test1 As Boolean = String .Compare(myString.Substring( 2 , 1 ), " c " ) = 0 ' Thisistrue.
myString.Substring( 3 , 1 ) ' ThisthrowsArgumentOutOfRangeException.
Dim test2 As Boolean = String .Compare(myString.Substring( 3 , 0 ), String .Empty) = 0 ' Thisistrue.
C#
StringmyString = " abc ";
bool test1 =String.Compare(myString.Substring(2 , 1 ), " c " ) == 0 ; // Thisistrue.
myString.Substring(
3 , 1 ); // ThisthrowsArgumentOutOfRangeException.
bool
test2 = String.Compare(myString.Substring( 3 , 0 ),String.Empty) == 0 ; //Thisistrue.
Collapse 图像语法2
Visual Basic(用法)
Dim instance As String
Dim startIndex As Integer
Dim returnValue As String

returnValue
= instance.Substring(startIndex)
C#
public string Substring(
int startIndex
)

参数

startIndex 此实例中子字符串的起始字符位置。

返回值

一个 String 对象,它等于此实例中从 startIndex 开始的子字符串,如果 startIndex 等于此实例的长度,则为 Empty。

Collapse 图像异常

异常类型 条件

ArgumentOutOfRangeException

startIndex 小于零或大于此实例的长度。

Collapse 图像备注

索引是从零开始的。

<ktable keywords="tt_M:System.String.Substring(System.Int32)" disambiguator="table" xmlns:mshelp="http://msdn.microsoft.com/mshelp" indexmoniker="!DefaultDynamicLinkIndex" topicheader="主题" locheader="位置"></ktable>

Collapse 图像示例

下面的代码示例演示如何从字符串中获取子字符串。

Visual Basic

Imports System

Public ClassSubStringTest ClassSubStringTest

PublicSharedSubMain()SubMain()
DiminfoAsString()={"Name:FelicaWalker","Title:Mz.","Age:47","Location:Paris","Gender:F"}
DimfoundAsInteger=0

Console.WriteLine(
"Theinitialvaluesinthearrayare:")
DimsAsString
ForEachsIninfo
Console.WriteLine(s)

Nexts
Console.WriteLine(
"{0}Wewanttoretrieveonlythekeyinformation.Thatis:",Environment.NewLine)

ForEachsIninfo
found
=s.IndexOf(":")
Console.WriteLine(s.Substring((found
+1)).Trim())
Nexts
EndSub
'Main
EndClass
' SubStringTest

C#

using System;

public class SubStringTest ... {
publicstaticvoidMain()...{

string[]info=...{"Name:FelicaWalker","Title:Mz.","Age:47","Location:Paris","Gender:F"};
intfound=0;

Console.WriteLine(
"Theinitialvaluesinthearrayare:");
foreach(stringsininfo)
Console.WriteLine(s);

Console.WriteLine(
"{0}Wewanttoretrieveonlythekeyinformation.Thatis:",Environment.NewLine);

foreach(stringsininfo)...{
found
=s.IndexOf(":");
Console.WriteLine(s.Substring(found
+1).Trim());
}

}

}

Collapse 图像平台

<supportedplatforms xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></supportedplatforms>Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见<link keywords="298275e2-da1d-4618-9f74-6a3567832350" xmlns:mshelp="http://msdn.microsoft.com/mshelp">。

Collapse 图像版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0PHP


// 汉字好像有乱码,仅列举非汉字
$str = " 2007-08-29 " ;
// 2007
$a = substr ( $str , 0 , 4 );
// 08
$b = substr ( $str , 6 , 2 );
// 29
$c = substr ( $str , 9 , 2 );

你可能感兴趣的:(截取字符串)