精华内容
下载资源
问答
  • C#从字符串中批量截取中间字符串 public string[] SubstringMultiple(string source,string startStr, string endStr) { Regex rg = new Regex("(?<=(" + startStr + "))[.\\s\\S]*?(?=(" + endStr + "))", ...

    C#从字符串中批量截取中间字符串

    public string[] SubstringMultiple(string source,string startStr, string endStr)
    {
    	Regex rg = new Regex("(?<=(" + startStr + "))[.\\s\\S]*?(?=(" + endStr + "))", 	RegexOptions.Multiline | RegexOptions.Singleline);
    	MatchCollection matches = rg.Matches(source);
        List<string> resList=new List<string>();
        foreach (Match item in matches)
            resList.Add(item.Value);
        return resList.ToArray();
    }
    
    展开全文
  • 截取中间字符串

    千次阅读 2008-07-12 09:42:00
    在某一字符串,传入首尾字符串,来截取中间字符串,一个较快速与安全的方法:public string Result(string original, string startString, string endString) { return Reverse(Reverse(original.Substring(start...

    在某一字符串,传入首尾字符串,来截取中间的字符串,一个较快速与安全的方法:

    public string Result(string original, string startString, string endString)
    
        {
    
            return Reverse(Reverse(original.Substring(startString.Length)).Substring(Reverse(endString).Length));
    
        }
    
    
    
        private string Reverse(string original)
    
        {
    
            char[] arr = original.ToCharArray();
    
            Array.Reverse(arr);
    
            return new string(arr);
    
        }
    展开全文
  • Delphi : 分割字符串string,取出截取中间字符串  (2012-05-17 09:50:26) 标签:  it 分类: 软件_Software Function FindStr(BegSprStr,EdSpStr:String;var Source:String):...

    Delphi : 分割字符串string,取出截取中间字符串

      (2012-05-17 09:50:26)
    标签: 

    it

    分类: 软件_Software

    Function FindStr(BegSprStr,EdSpStr:String;var Source:String):String;
    var
    BegStr1Len,EdSpStr2Len,BegStr1Index,EdSpStr2index:integer;
    Temp:String;
    begin
    Temp:=Source;
    BegStr1Index:=Pos(BegSprStr,Temp);
    BegStr1Len:=Length(BegSprStr);
    delete(Temp,BegStr1Index,BegStr1Index+BegStr1Len-1);
    EdSpStr2index:=Pos(EdSpStr,Temp);
    EdSpStr2Len:=Length(EdSpStr);
    Result:=Copy(Temp,1,EdSpStr2index-1);
    Delete(Temp,1,EdSpStr2index+EdSpStr2Len-1);
    Source:=temp;
    end


    該函數的功能就是取兩個相隔符之間的字符.
    var Source:string
    Source:=<1111>string1<1122><2233>string2<3344><4455>string3<5566>;
    string1:=FindStr('<1111>','<1122>',Source);
    String2:=FindStr('<2233>','<3344>',Source);
    String3:=FindStr('<4455>','<5566>',Source);


    //---------------------------------------------我想取得一个email地址的用户名

    function myuser(email:string):string;
    var
    i,n:integer;
    begin
    n:=pos('@',email);
    result:=copy(email,0,n-1);//改了一下
    end;
    //---------------------------------------------
    下面就可以取出
    leftstr(emaddress,Pos('@',emaddress))
    //---------------------------------------------
    uses IdGlobal;
    User := Fetch(EmailAddress, '@');
    //--------------------------------
    ExtractStrings(要分隔的字符串,分隔字符串用的字符集合,分隔后排在第一位的消去的字符集合,字符串列表对象)


    另一个函数SplitString

    Function SplitString(const source,ch:string):TStringList;
    var
    temp, t2 : string;
    i : integer;
    begin
    result := TStringList.Create;
    temp := source;
    i := pos(ch,source);
    while i<>0 do begin
    t2 := copy(temp,0,i-1);
    if (t2<>'') then result.Add(t2);
    delete(temp,1,i-1+Length(ch));
    i:=pos(ch,temp);
    end;
    result.Add(temp);
    end;
    例子:

    st := SplitString('xxx@hoho.com''@');

    st[0] = 'xxx';
    st[1] = 'hoho.com';
    -----------------------------------------------------------------------------

    因为喜欢用文本来记录数据,比如帐号密码等等,一个游戏帐户一行

    帐号1,密码1,游戏区11

    帐号2,密码2,游戏区11

    需要用到分割字符串函数。

    delphi的Classes有ExtractStrings函数,感觉用起来不好,后来网上找了个,如下

    function SplitString(pString:Pchar;psubString:PChar):TStringList;
    var
       nSize,SubStringSize:DWord;
       intI,intJ,intK:DWORD;
       ts:TStringList;
       curChar:Char;
       strString:string;
       strsearchSubStr:string;
    begin
       nSize:=strLen(pString);
       SubStringSize:=strLen(PSubString);
       ts:=TStringList.Create;
       strstring:='';
       inti:=0;
       while intI<=(nSize-1) do
       begin
          if (nsize-inti)>= substringSize then
          begin
              if ((PString+intI)^=pSubString^) then
              begin
                 intk:=inti;
                strSearchSubStr:='';
                curchar:=(pstring+intk)^;
                strsearchSubStr:=strSearchSubStr+Curchar;
                intk:=intk+1;
                for intj:= 1 to SubStringSize-1  do
                begin
                   if ((pString+intk)^=(PSubString+intj)^) then
                   begin
                      curchar:=(pstring+intk)^;
                      intk:=intk+1;
                      strsearchSubStr:=strSearchSubStr+Curchar;
                end
                else begin
                  inti:=intk;
                  strString:=strString+strSearchSubStr;
                  break; //不匹配 退出FOR
                end;
            end;
             if (intJ=substringSize) or (SubStringSize=1) then
             begin
                inti:=intk;
                ts.add(strstring);
                strstring:='';
             end;
          end
          else begin
             curChar:=(pString+inti)^;
             strstring:=strstring+curchar;
             inti:=inti+1;
          end;
          if inti=nsize then
          begin
             ts.Add(strString);
             strString:='';
           end;
         end
         else begin //将剩下的字符给作为一个字符串复制给字符串集合
            strString:=strstring+string(pString+inti);
            ts.Add(strstring);
            inti:=nsize;
         end;
       end;
       Result:=ts;

    end;


    -----------------------------------------------------------------------------------------

    确实很有用,但是这个怎么把空格也默认为分割符了呢,谁知道怎样把空格不认为是分割符的?? TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的。 常规的用法大家都知道,现在来讨论它的一些高级的用法。 先把要讨论的几个属性列出来: 1

     

    确实很有用,但是这个怎么把空格也默认为分割符了呢,谁知道怎样把空格不认为是分割符的?? TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的。
    常规的用法大家都知道,现在来讨论它的一些高级的用法。
    先把要讨论的几个属性列出来:
    1、CommaText
    2、Delimiter & DelimitedText
    3、Names & Values & ValueFromIndex先看第一个:CommaText。怎么用呢?用代码说话:
    const
       constr :String = 'aaa,bbb,ccc,ddd';
    var
       strs :TStrings;
       i :Integer;
    begin
       strs := TStringList.Create;
       strs.CommaText := constr;
       for i := 0 to Strs.Count-1 do
         ShowMessage(Strs[i]);
    end;
    执行了这段代码后,可以看到ShowMessage显示出来的分别是:aaa bbb ccc ddd。
    也就是说,strs.CommaText := constr这一句的作用,就是把一个字符串以','为分割符,分段添加到TStrings中。
    那么如果不是以','来分割,又该怎么做呢?现在看第二个例子。使用Delimiter和DelimitedText。
    const
       constr :String = 'aaa/bbb/ccc/ddd';
    var
       strs :TStrings;
       i :Integer;
    begin
       strs := TStringList.Create;
       strs.Delimiter := '/';
       strs.DelimitedText := constr;
       for i := 0 to Strs.Count-1 do
         ShowMessage(Strs[i]);
    end;
    可以看到, 显示的效果和第一个例子是一模一样的。解释一下:
    Delimiter为分隔符,默认为:','。DelimitedText就是按Delimiter为分隔符的一个串,得到赋值后回把这个字符串按Delimiter的字符添加到TStrings中。
    说到这里,有想起一个属性,QuoteChar。其默认值为:'"'(不包括单引号)
    有何用呢?看例子:
    const
       constr :String = '"aaa"/"bbb"/"ccc"/"ddd"';
    var
       strs :TStrings;
       i :Integer;
    begin
       strs := TStringList.Create;
       strs.Delimiter := '/';
       strs.DelimitedText := constr;
       for i := 0 to Strs.Count-1 do
         ShowMessage(Strs[i]);
    end;
    显示出来的仍然是aaa bbb ccc ddd。为什么不是:"aaa" "bbb" "ccc" "ddd"呢?
    再来看一个例子:
    const
       constr :String = '|aaa|/|bbb|/|ccc|/|ddd|';
    var
       strs :TStrings;
       i :Integer;
    begin
       strs := TStringList.Create;
       strs.Delimiter := '/';
       strs.QuoteChar := '|';
       strs.DelimitedText := constr;
       for i := 0 to Strs.Count-1 do
         ShowMessage(Strs[i]);
    end;
    显示出来的又是aaa bbb ccc ddd。对比一下,应该不难明白吧?这个就不多说了,用得也不多。
    但是还要多说一句,当Delimiter为:','而QuoteChar为:'"'时,DelimitedText和CommaText是同等的。
    最后要说的三个是:Names & Values & ValueFromIndex。
    看看下面的代码:
    const
       constr :String = '0=aaa,1=bbb,2=ccc,3=ddd';
    var
       strs :TStrings;
       i :Integer;
    begin
       strs := TStringList.Create;
       strs.CommaText := constr;
       for i := 0 to strs.Count-1 do
       begin
         ShowMessage(strs.Names[i]);
         ShowMessage(strs.Values[strs.Names[i]]);
         ShowMessage(strs.ValueFromIndex[i]);
       end;
    end;
    通过这个例子不难看出:
    这个时候strs中的内容是:
    0=aaa
    1=bbb
    2=ccc
    3=ddd
    而Names中则是:
    0
    1
    2
    3
    在Values中则是:
    aaa
    bbb
    ccc
    ddd----------------------------------------------------------------------------------------------
    Delphi分割字符串的函数--ExtractStrings


    Unit
    Classes
    function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;

    Separators 参数指定一组分割符,所有的子串都是用它们分割的。但是成对的引号内的分割符会被忽略(参看下面的例子)。
    WhiteSpace 参数指定每个子串开头被忽略的字符s。
    Content 参数就是被分割的“源”串了。
    Strings 参数用于接收分割后的各个子串。它的原有内容不会被清空。别忘了Create哦。
    另外,EctractStrings不会把(忽略WhiteSpaces后的)空串加入到Strings中。

    例子如下:

    uses
       Classes;
    var
       ASource: PChar;
       AStr: String;
       ACount: Integer;
       AStrings: TStringList;
    begin
       ASource := 'ABC|...   DEF|#### GHI|"|# ;
       AStrings := TStringList.Create;
       try
         ACount := ExtractStrings(['|'], [' ','#','.'], ASource, AStrings);
         {do any further processing}
         //for AStr in AStrings do
         //   Writeln(AStr);
       finally
         AStrings.Free;
       end;

       Readln;
    end.
    结果得到下面四个字符串:
         1、ABC
         2、DEF
         3、GHI
         4、|# www.sohu.com

     

    展开全文
  • 使用sed:sed -E 's/.*\/(.*)-.*/\1/' plainlinks999999-94092999999-94094999999-94096999999-94097999999-94098999999-94644999999-94645999999-94995999999-94996999999-96404要将更改保存到文件,请使用-i选项:...

    使用sed:

    sed -E 's/.*\/(.*)-.*/\1/' plainlinks

    999999-94092

    999999-94094

    999999-94096

    999999-94097

    999999-94098

    999999-94644

    999999-94645

    999999-94995

    999999-94996

    999999-96404

    要将更改保存到文件,请使用-i选项:

    sed -Ei 's/.*\/(.*)-.*/\1/' plainlinks

    或者保存到新文件然后重定向:

    sed -E 's/.*\/(.*)-.*/\1/' plainlinks > newfile.txt

    说明:

    s/ # subsitution

    .* # match anything

    \/ # upto the last forward-slash (escaped to not confused a sed)

    (.*) # anything after the last forward-slash (captured in brackets)

    - # upto a hypen

    .* # anything else left on line

    / # end match; start replace

    \1 # the value captured in the first (only) set of brackets

    / # end

    展开全文
  • js截取中间字符串

    千次阅读 2015-10-30 19:41:59
    /*var str="aao1ab01"; var tableName=str.match(/(>=?...)以>开始的字符串 ()*/ var str="aa01aa02"; var tableName=str.replace(/]*>/g,' '); var arry = tableName.split(" "); var name=[]; for
  • /// 指定开始字符串和结束字符串,截取中间的字符 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="s">开始字符串</param&g...
  • 下面小编就为大家分享一篇iOS 截取字符串中两个指定字符串中间字符串方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 截取字符串中两个指定字符串中间字符串
  • 由于业务需要,要提取指定字符串的关键信息。具体要求是从一个字符串提取<>里面的内容。 于是想到利用Python 中的正则实现。 输入: 我要听<梁博>的<男孩> 输出: 梁博 男孩 Python ...
  • 主要介绍了python根据开头和结尾字符串获取中间字符串的方法,涉及Python操作字符串截取的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 例如,要截取一个字符串中,两个指定字符串中间字符串,OC截取方法如下:// 要截取 "> 和 之间的汉字内容: @implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; NSString *string = @"这是要...
  • 指定开始字符串和结束字符串,截取中间的字符.pdf
  • VBA正则提取A字符串之后B字符串之前中间的内容.txt
  • 截取两个字符串中间字符串

    千次阅读 2018-11-06 15:49:44
    public String getCoupon(String couponinfo) { String coupon = “”;...//要获取减和元中间字符串 Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(couponinfo);// 匹配类 w...
  • 指定开始字符串和结束字符串 截取中间的字符
  • java代码-截取首尾两个字符串中间字符串
  • C#字符串 - 截取指定字符串中间

    千次阅读 2019-06-20 15:53:27
    2、利用字符串indexof截取 public static string MidStrEx(string sourse, string startstr, string endstr) { string result = string.Empty; int startindex, endindex; try { startindex = sourse....
  • Oracle中字符串截取最全方法总结

    万次阅读 多人点赞 2018-08-30 18:10:42
    substr 函数:截取字符串 语法:SUBSTR(string,start,[length]) string:表示源字符串,即要截取字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项...
  • // 截取字符串,截取两个子串中间字符串 char g_str[400]; char* InterceptString (char *str, char *left_str, char *right_str) { char *l_str = strstr(str, left_str); int r_str = strcspn(l_str, right_str...
  • 例如,要截取一个字符串中,两个指定字符串中间字符串,OC截取方法如下:// 要截取 "&gt; 和 &lt;/ 之间的汉字内容:@implementationViewController- (void)viewDidLoad {[super viewDidLoad];NSString *...
  • 字符串提取(获取两个字符串中间字符串) http://blog.csdn.net/isaced/archive/2011/01/24/6161259.aspx
  • 截取两个字符串中间字符

    千次阅读 2016-07-13 13:52:20
    //获取中间字符串 NSString *frontStr = @"id"; //从该字符开始 NSString *behindStr = @"?"; //到该字符结束NSRange range; range.location = [string rangeOfString:frontStr].location + frontStr
  • 比如:字符串aaabbbcccdddeee,想要获取"ccc" 正则表达式可以参考以下四种示例: (?<=aaabbb).*(?=dddeee) (?<=bbb).*(?=dddeee) (?<=aaabbb).*(?=ddd) (?<=bbb).*(?=ddd) 如果要包括左右两侧的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,684
精华内容 39,473
关键字:

如何提取中间字符串