c# - 在 C# 中使用正则表达式获取最后一个逗号或最后一个数字后的字符串

标签 c# regex

对于此示例,如何使用正则表达式获取最后一个逗号或最后一个数字之后的字符串:

  • "Flat 1, Asker Horse Sports", -- 获取","后的字符串结果:"Asker 马术运动”
  • “9 Walkers Barn”——在“9”结果之后获取字符串: 沃克斯谷仓

我需要那个正则表达式来支持两种情况或不同的正则表达式规则,每个/案例。

我尝试了 /,[^,]*$/(.*),[^,]*$ 来获取最后一个逗号之后的字符串,但没有运气。

最佳答案

你可以使用

[^,\d\s][^,\d]*$

参见 regex demo (和一个 .NET regex demo )。

详情

  • [^,\d\s] - 除了逗号、数字和空格之外的任何字符
  • [^,\d]* - 除逗号和数字外的任何字符
  • $ - 字符串结尾。

在 C# 中,您还可以使用 RegexOptions.RightToLeft 选项告诉正则表达式引擎从字符串末尾搜索匹配项(以使正则表达式匹配更有效。虽然它可能不是如果输入字符串很短,在这种情况下是必需的):

var output = Regex.Match(text, @"[^,\d\s][^,\d]*$", RegexOptions.RightToLeft)?.Value;

关于c# - 在 C# 中使用正则表达式获取最后一个逗号或最后一个数字后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64501467/

相关文章:

c# - MonthCalendar - 禁用日期

r - 在 R 中,从字符串中删除除最后一个之外的所有点

regex - 在 VBA 中对数学(中缀)表达式进行标记

ruby-on-rails - 如何解析文本以获得所有提及者?

Python 正则表达式抓取和替换字符串

c# - ListView 按列排序

c# - 如何在以管理员权限执行的进程中运行命令?

c# - C#中线程安全的可破坏事件触发类

c# - C# 和远程桌面问题的屏幕截图

javascript - 利用正则表达式分析Cisco交换机端口信息