如何使用正则表达式或子字符串从字符串中提取文本?
Posted
技术标签:
【中文标题】如何使用正则表达式或子字符串从字符串中提取文本?【英文标题】:How can I extract text from a string using regex or substring? 【发布时间】:2015-12-11 14:51:41 【问题描述】:我现在正在做的是:
if (textforspeech.contains("upload completed"))
String varr = textforspeech.substring(17,3);
String varr1 = textforspeech.substring(0, 16);
String varr2 = textforspeech.substring(21);
但我的程序在第一个子字符串 17,3 上崩溃
textforspeech
中的文字是:“上传完成100 0”
数字 100 目前的百分比并且将一直是 100。
而数字 0 存在的秒数有时可以更改为 0 有时为 1 有时为 34.5
在varr
我需要把 100 作为字符串“100”
在varr1
“上传完成”
在varr2
“0”
只有varr2
可能会在下一次更改为“1”或“45.5”
在我将秒数添加到字符串 textforspeech
之前,它只是:
“上传完成 100”所以我可以制作 substring(17)
和 substring(0,16)
但是现在我在 100 之后添加了秒数,那么如何将其全部提取到三个变量中?
【问题讨论】:
使用.LastIndexOf(' ')+1
获取最后一个号码。前两个值是已知的,为什么要提取它们?只需分配:String varr = "100"; String varr1 = "upload completed";
。以及为什么要在if
中分配变量?
它是包含而不是包含和子字符串而不是子字符串。方法名称以大写字母开头。
糟糕,抱歉,它是 java 而不是 c#。我会提出新的问题。这个怎么办?
【参考方案1】:
你可以这样做:
string[] parts = textforspeech.split(new char[] ' ' );
string varr = parts[2]; // "100"
string varr1 = string.format("0 1", parts[0], parts[1]); // "upload completed"
string varr2 = parts[3]; // value
【讨论】:
以上是关于如何使用正则表达式或子字符串从字符串中提取文本?的主要内容,如果未能解决你的问题,请参考以下文章