您的位置:首页 > 其它

截取字符串的一些东东

2007-08-24 13:06 162 查看
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)

文字、バイナリ、テキスト、またはイメージ型の式の一部を返します。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_id logo    pr_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 截取字符串



var ExpCollDivStr = ExpCollDivStr;
ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl13bbe24e5,";
var ExpCollImgStr = ExpCollImgStr;
ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl13img,";

var ExpCollDivStr = ExpCollDivStr;
ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl15ac4267f,";
var ExpCollImgStr = ExpCollImgStr;
ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl15img,";

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

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



语法


Visual Basic(用法)


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。



异常

异常类型条件
ArgumentOutOfRangeException

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

- 或 -

startIndex 或 length 小于零。



备注

startIndex 从零开始。



示例

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

Visual Basic


Dim myString As String = "abc"


Dim test1 As Boolean = String.Compare(myString.Substring(2, 1), "c") = 0 ' This is true.


myString.Substring(3, 1) ' This throws ArgumentOutOfRangeException.


Dim test2 As Boolean = String.Compare(myString.Substring(3, 0), String.Empty) = 0 ' This is true.



C#


String myString = "abc";


bool test1 = String.Compare(myString.Substring(2, 1), "c") == 0; // This is true.


myString.Substring(3, 1); // This throws ArgumentOutOfRangeException.


bool test2 = String.Compare(myString.Substring(3, 0), String.Empty) == 0; // This is true.





语法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。



异常

异常类型条件
ArgumentOutOfRangeException

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



备注

索引是从零开始的。



示例

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

Visual Basic


Imports System






Public Class SubStringTestClass SubStringTest






Public Shared Sub Main()Sub Main()


Dim info As String() = {"Name: Felica Walker", "Title: Mz.", "Age: 47", "Location: Paris", "Gender: F"}


Dim found As Integer = 0




Console.WriteLine("The initial values in the array are:")


Dim s As String


For Each s In info


Console.WriteLine(s)




Next s


Console.WriteLine("{0}We want to retrieve only the key information. That is:", Environment.NewLine)




For Each s In info


found = s.IndexOf(":")


Console.WriteLine(s.Substring((found + 1)).Trim())


Next s


End Sub 'Main


End Class 'SubStringTest



C#


using System;






public class SubStringTest ...{




public static void Main() ...{






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


int found = 0;




Console.WriteLine("The initial values in the array are:");


foreach (string s in info)


Console.WriteLine(s);




Console.WriteLine("{0}We want to retrieve only the key information. That is:", Environment.NewLine);






foreach (string s in info) ...{


found = s.IndexOf(":");


Console.WriteLine(s.Substring(found + 1).Trim());


}


}


}




平台

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 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。



版本信息

.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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: