首页 新闻 会员 周边

string截取字符串。

0
[待解决问题]
string="他们 你们 我们 不是小雪 是小红 是小绿 不是小蓝";

条件:

1.只知道关键字“小雪”,以并不知道空格处在第几个字符。

这样的情况下如何截取出“不是小雪 是小红 是小绿 不是小蓝”。

C# js
问题补充:

就是以小雪所在句前面空格开始截取后面的字符串。

你猜丶的主页 你猜丶 | 初学一级 | 园豆:183
提问于:2018-08-08 17:59
< >
分享
所有回答(6)
0

说说我的思路吧,在python中以下两行代码可实现你说的需求:

start_position = re.search('\w{2}小雪',string).span()[0]

newstring = string[start_position  : ]

说明:第一条语句是通过正则表达式匹配到‘不是小雪’,找到起始位置;第二条语句是利用切片方法截取到最后,得到所需子字符串。在C#里面也是类似的,可先利用正则找到‘不是小雪’这个字符串的位置,然后利用Substring等方法截取所需的子字符串。

淡水鱼徜徉在大海 | 园豆:180 (初学一级) | 2018-08-08 20:27
0

你看一下,这个应该就是你需要。即使1楼朋友的思路用C#的实现。

 

class Program
{
static void Main(string[] args)
{
string newStr = SubStr("他们 你们 我们 不是小雪 是小红 是小绿 不是小蓝", "小雪");
Console.WriteLine(newStr);
Console.ReadLine();

}

public static string SubStr(string str, string substr)
{

var position = str.IndexOf(substr);
string newStr = str.Substring(position);

return newStr;
}
}

僧正 | 园豆:193 (初学一级) | 2018-08-08 22:27
0

用正则表达式

C#

var str="他们 你们 我们 不是小雪 是小红 是小绿 不是小蓝";

var reg="[^\s]*小雪.*";

var result= System.Text.RegularExpressions.Regex.Match(str,reg).Value;

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 10:28
0

先用空格拆分数组,然后把包含小雪的下标和后面的,再拼接在一起返回

队长给我球。 | 园豆:324 (菜鸟二级) | 2018-08-09 18:06
0

java用split方法,从“我们”开始分割。

ycyzharry | 园豆:25653 (高人七级) | 2018-08-09 19:19
0

用空格分割,或者空格替换成逗号,再分割成字符串数组,能满足你的需求吗

chengeng | 园豆:294 (菜鸟二级) | 2018-08-15 17:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册