【发布时间】:2013-04-13 12:12:43
【问题描述】:
在第一个空格之后获取字符串中所有单词的语法是什么。例如,鲍勃漂亮的房子。所以结果应该是没有引号的“nice house”。
([^\s]+) 给了我所有 3 个由 ; 分隔的单词
,[\s\S]*$ > 未编译。
【问题讨论】:
在第一个空格之后获取字符串中所有单词的语法是什么。例如,鲍勃漂亮的房子。所以结果应该是没有引号的“nice house”。
([^\s]+) 给了我所有 3 个由 ; 分隔的单词
,[\s\S]*$ > 未编译。
【问题讨论】:
我真的在寻找尽可能短的代码。以下完成了这项工作。谢谢大家
\s(.*)
【讨论】:
\s 匹配所有空格,而不仅仅是空格
我认为应该这样做:
[^ ]* (.*)
它允许 0 个或更多不是空格的元素,而不是单个空格,并选择该空格之后的任何内容。
C# 用法
var input = "bobs nice house";
var afterSpace = Regex.Match(input, "[^ ]* (.*)").Groups[1].Value;
afterSpace 是"nice house"。
要在结果字符串中也获得第一个空格,请将表达式更改为[^ ]*( .*)
没有正则表达式解决方案
var afterSpace = input.Substring(input.IndexOf(' '));
【讨论】:
实际上,您不需要为该过程使用正则表达式。你只需要像这样使用String.Split() 方法;
string s = "bobs nice house";
string[] s1 = s.Split(' ');
for(int i = 1; i < s1.Length; i++)
Console.WriteLine(s1[i]);
输出将是;
nice
house
这是DEMO。
【讨论】:
使用/(?<=\s).*/g在第一个空格后查找字符串。运行sn -p检查
str="first second third forth fifth";
str=str.match(/(?<=\s).*/g)
console.log(str);
【讨论】: