当前位置: 首页 > 知识库问答 >
问题:

从中提取字符串

李嘉胜
2023-03-14

我有以下字符串

29  This is a Page1  6754001  1,2,3,4
6755  This is a Page2 56-0 7654564 
 This is a Page3  67543-986xx 8 12
 This is (Page5)& Container 876-0 6 8xp

从上面,我需要提取下面的文字

This is a Page1 
 This is a Page2
 This is a Page3
 This is (Page5)& Container

第一个数字和文本之间总是有一个空格,所以2129和This is page1之间有一个空格。有时第一个数字被省略,就像2129不见了。文本和下一个数字之间总是有一个空格,所以在This is a Page1和6754001之间有一个空格,有时可能有两个空格。我只需要提取这些线这些线总是从空格开始,所以它可以

29 This is page1

它们的后面总是有一个空格,有时是一个空格,有时是两个空格。

任何帮助都将不胜感激。

共有2个答案

毕浩渺
2023-03-14
^\d*.*?\s+|(?<=\s)\d{2,}.*(?=\s|$)

试试这个。这将适用于您的最新要求。见演示

http://regex101.com/r/gG5fF6/4

米迪
2023-03-14

您可以尝试下面的正则表达式来获取文本,该文本在开始时前面有一个可选的数字,后面有一个或多个空格和一个数字。

正则表达式:

^(?:\d+)?\s*(.*?)\s+\d.*

替换字符串:

$1

演示

通过字符串替换,

代码

string str = @"29  This is a Page1  6754001  1,2,3,4
6755  This is a Page2 56-0 7654564 
 This is a Page3  67543-986xx 8 12
 This is (Page5)& Container 876-0 6 8xp";
string result = Regex.Replace(str, @"(?m)^(?:\d+)?\s*(.*?)\s+\d.*", "$1");
Console.WriteLine(result);
Console.ReadLine();

输出:

This is a Page1
This is a Page2
This is a Page3
This is (Page5)& Container

表意文字

或者

通过匹配方法。

string str = @"29  This is a Page1  6754001  1,2,3,4
6755  This is a Page2 56-0 7654564 
 This is a Page3  67543-986xx 8 12
 This is (Page5)& Container 876-0 6 8xp";
Regex rgx = new Regex(@"(?m)^(?:\d+)?\s*(.*?)\s+\d.*");
foreach (Match m in rgx.Matches(str))
Console.WriteLine(m.Groups[1].Value);

表意文字

 类似资料:
  • 所谓字符串,指的就是字符的序列或者“串”。我们要在字符串上执行的第一个操作是提取所有字符中的一个。C++使用方括号([和])执行该操作: apstring fruit = "banana"; char letter = fruit[1]; cout << letter << endl; 表达式fruit[1]表明我们要从字符串变量fruit中取得编号为1的字符,并将结果保存在字符变量letter

  • 问题内容: 我想从包含数字和字母的字符串中提取数字: 我想在这里获取号码或任何其他号码。 问题答案:

  • 问题内容: 我正在尝试找到一种可靠的解决方案,以从字符串中提取URL。我有一个站点,用户可以在其中回答问题,并且可以在源框中输入他们的信息源,并允许他们输入网址。我想提取该URL并使其成为超链接。类似于Yahoo Answers的操作方式。 有谁知道可以做到这一点的可靠解决方案? 我发现的所有解决方案都适用于某些URL,但不适用于其他URL。 谢谢 问题答案: 约翰·格鲁伯(John Gruber

  • 问题内容: 我在JavaScript中有一个字符串,例如“#box2”,我只想从中获得“ 2”。 尝试过: 它仍然在警报中返回#box2,我该如何使其正常工作? 它需要容纳末尾附加的任何长度的数字。 问题答案: 对于此特定示例, 在一般情况下: 由于这个答案由于某种原因而受到欢迎,因此有一个好处:正则表达式生成器。

  • 我需要的信息,如果以粗体格式如上所见,即 代码:PF56S55yy收到金额:6,495.00来自:担保信托银行有限公司910201日期:5/6/21时间:10:07

  • 我有两根弦。一个包含“格式”和占位符,另一个包含占位符的实际值。 例如: 字符串一: 字符串二: 字符串一: 字符串二: 我正在尝试为变量赋值第二个字符串中username占位符的值,并为变量赋值第二个字符串中password占位符的值。 我知道方法,但这不是用第二个字符串替换第一个字符串吗?