17

在第一个空格之后获取字符串中所有单词的语法是什么。例如,鲍勃漂亮的房子。所以结果应该是没有引号的“漂亮的房子”。

([^\s]+)给我所有 3 个单词,由 ; 分隔

,[\s\S]*$ >不编译。

4

4 回答 4

26

我真的在寻找最短的代码。以下完成了这项工作。多谢你们

\s(.*)
于 2013-04-13T12:28:19.917 回答
6

我认为应该这样做:

[^ ]* (.*)

它允许 0 个或更多不是空格的元素,而不是单个空格,并选择该空格之后的任何内容。

C# 用法

var input = "bobs nice house";

var afterSpace = Regex.Match(input, "[^ ]* (.*)").Groups[1].Value;

afterSpace"nice house"

要在结果字符串中也获得第一个空格,请将表达式更改为[^ ]*( .*)

没有正则表达式解决方案

var afterSpace = input.Substring(input.IndexOf(' '));
于 2013-04-13T12:14:49.903 回答
2

实际上,您不需要为该过程使用正则表达式。你只需要使用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.

于 2013-04-13T12:27:17.570 回答
2

用于/(?<=\s).*/g在第一个空格后查找字符串。运行代码段检查

str="first second third forth fifth";
str=str.match(/(?<=\s).*/g)
console.log(str);

于 2020-12-07T10:20:59.507 回答