截取字符串的一些东东

系统 2379 0

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

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

- 或 -

startIndex length 小于零。

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 Class SubStringTest

Public Shared SubMain() Sub Main()
Dim info As String () = { " Name:FelicaWalker " , " Title:Mz. " , " Age:47 " , " Location:Paris " , " Gender:F " }
Dim found As Integer = 0

Console.WriteLine(
" Theinitialvaluesinthearrayare: " )
Dim s As String
For Each s In info
Console.WriteLine(s)

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

For Each s In info
found
= s.IndexOf( " : " )
Console.WriteLine(s.Substring((found
+ 1 )).Trim())
Next s
EndSub
' Main
EndClass
' SubStringTest

C#

using System;

public class SubStringTest ... {
public static void Main() ... {

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

Console.WriteLine(
" Theinitialvaluesinthearrayare: " );
foreach ( string s in info)
Console.WriteLine(s);

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

foreach ( string s in info) ... {
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 );

截取字符串的一些东东


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论