为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式在 C# 中拆分字符串

正则表达式在 C# 中拆分字符串

C#
萧十郎 2021-10-09 19:48:04
我有一个字符串输入,如:var input = "1. J. Carter 2. Mark R. 1000. Axl"可以有任意数量的名称,但关键是我需要将此字符串拆分为这样的数组J·卡特马克 R。轴我认为应该有一种方法可以用正则表达式来做到这一点,但我对这个主题完全陌生,所以我非常感谢你的帮助。
查看完整描述

3 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你当然可以用正则表达式来做到这一点。这应该适合你:

var names = new Regex(@"\d+\.\s+([^\d]+)").Matches(input)
                .Cast<Match>()
                .Select(m => m.Groups[1].Value);
                .ToList();
  • \d+一个或多个数字相匹配。

  • \.文字匹配的.字符。

  • \s+场比赛的一个或多个空格字符。

  • ()创建一个捕获组。

  • [^\d]+场比赛的一个或多个非数字字符(基本名称)。


查看完整回答
反对 回复 2021-10-09
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

这对我来说是一个正则表达式:

((?<Number>\d+)\.\s+)(?<Name>[a-zA-Z\.\s]+)(\s*)

对于每场比赛,您会得到一个名为“Number”的组,其中包含一个或多个数字 (the \d+),以及一个名为“Name”的组,其中包含您要查找的名称。在[a-zA-Z\.\s]+与名称相关联的说,任何数量的大写或小写字母,点或空格。在\.\s+一个点后面跟着一个或多个空格,而结尾写着”(\s*)吞任何可能尾随空格。

解析您的字符串,我得到三个匹配项,以及您期望的数字和名称。


查看完整回答
反对 回复 2021-10-09
  • 3 回答
  • 0 关注
  • 317 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信