当前位置:编程学习 > C#/ASP.NET >>

如何取指定文本当中的一段文本

ptui_checkVC('1','457263458756342');
比如上面的这段文本,我想取里面的457263458756342,但是每次又是随机的,应该如何取呢,谢谢大家了 --------------------编程问答-------------------- ptui_checkVC('1','457263458756342');

你要提取的文本,是否全是这样的?就是ptui_checkVC开始,然后一对括号里,2个串。

如果是,可以定义一个正则表达式用以提取 --------------------编程问答-------------------- 嗯,是的,但是正则表达式是多少呢,谢谢了 --------------------编程问答--------------------
引用 1 楼 abbey 的回复:
ptui_checkVC('1','457263458756342');

你要提取的文本,是否全是这样的?就是ptui_checkVC开始,然后一对括号里,2个串。

如果是,可以定义一个正则表达式用以提取

嗯,是的,但是正则表达式是多少呢,谢谢了 --------------------编程问答--------------------
引用楼主 ni_da_jie 的回复:
ptui_checkVC('1','457263458756342');
比如上面的这段文本,我想取里面的457263458756342,但是每次又是随机的,应该如何取呢,谢谢大家了

用InStr結合SubString試試。 --------------------编程问答--------------------


  string str = "ptui_checkVC('1','457263458756342')";
  int index = str.IndexOf(",");
  int endindex = str.LastIndexOf(",");
  if (index > -1)
  {
      Response.Write(str.Substring(index+2,endindex-1));
  }


这样呢 --------------------编程问答-------------------- Response.Write输出的就是你想 取得。。 --------------------编程问答-------------------- 5楼写错了。改下

 string str = "ptui_checkVC('1','45ccccc7263458756342')";
 int index = str.IndexOf(",");
 int endindex = str.LastIndexOf("'");
 if (index > -1)
 {
    Response.Write(str.Substring(index+2,(endindex-index-2)));
 }
--------------------编程问答-------------------- 方式一:
如楼上沉浮所示,利用string.IndexOf()确定取提取串的起始位置

方式二:
使用正则表达式,提取两个引号间的连续15个数字,象下面这样:
string source = @"x000xxxptui_checkVC('1','457263458756342');xx00000xx";
Regex rgx = new Regex(@"'\d{15}'");
Match m = rgx.Match(source);
string value = m.Value.Substring(1);
--------------------编程问答-------------------- 上面改一下,忘记删除最后一个引号了
string value = m.Value.Substring(1, 15);
--------------------编程问答-------------------- 多说一句,这个正则表达式的精度,仍要取决于你的需求精度,否则仍有可能失配。 --------------------编程问答--------------------
引用 10 楼 abbey 的回复:
多说一句,这个正则表达式的精度,仍要取决于你的需求精度,否则仍有可能失配。

如果"ptui_checkVC('1','025462546544');"中"ptui_checkVC('0'是0,那么就是"ptui_checkVC('0','gj45');",如果"ptui_checkVC('1'是1,那么就是"ptui_checkVC('1','fv1f4sf4sfv1sfb');",所以只能用正则 --------------------编程问答--------------------
引用 6 楼 yksyuan 的回复:
Response.Write输出的就是你想 取得。。

如果"ptui_checkVC('1','025462546544');"中"ptui_checkVC('0'是0,那么就是"ptui_checkVC('0','gj45');",如果"ptui_checkVC('1'是1,那么就是"ptui_checkVC('1','fv1f4sf4sfv1sfb');",所以只能用正则 --------------------编程问答-------------------- 我来发一个VB.net的吧。首先我想你的字符串应该是这样的
ptui_checkVC('1','随机数字');

原理:
我们可以先利用instr找到 ',' 所在的位置

然后找到最后一个 单引号 所在的位置就可以用MID把值提取出来了。

以下为是实例。在VB.net 2008测试通过

         Dim Temp As String = "ptui_checkVC('1','1234567894811');" '你原来的字符串
         Dim FGF As String = "','"
        Dim Start As Integer = InStr(Temp, FGF) + FGF.Length‘获取','的结束位置
        Dim TheEnd As Integer = InStrRev(Temp, "'")'获取最后一个单引号所在的未知
        Dim Result As String = Mid(Temp, Start, TheEnd - Start)'取出结果
        MsgBox("提取字符串的结果是:" & Result)
--------------------编程问答-------------------- Split函数

Dim Cell(2)
Dim Temp As String 
Cell=Split("ptui_checkVC('1','1234567894811');" ",")
Temp=cell(1) --------------------编程问答--------------------
引用 14 楼 autuwheat 的回复:
Split函数

Dim Cell(2)
Dim Temp As String 
Cell=Split("ptui_checkVC('1','1234567894811');" ",")
Temp=cell(1)


不好意思写错了...
Dim Cell(4)
Dim Temp As String 
Cell=Split("ptui_checkVC('1','1234567894811');" "'")
Temp=cell(3)
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,