如何使用regex获得最后一个逗号或最后一个数字之后的字符串:
我需要那个正则表达式来支持这两种情况,或者支持不同的正则表达式规则。
我尝试/,[^,]*$/和(.*),[^,]*$在最后一个逗号之后得到字符串,但是没有运气。
发布于 2020-10-23 14:03:50
您可以使用
[^,\d\s][^,\d]*$请参阅regex演示 (和.NET regex演示)。
详细信息
[^,\d\s] -除了逗号、数字和空格以外的任何字符[^,\d]* -除了逗号和数字以外的任何字符$ -字符串的末端。在C#中,您还可以告诉regex引擎使用RegexOptions.RightToLeft选项从字符串末尾搜索匹配(以提高regex匹配的效率。虽然在这种情况下,如果输入字符串是短的,则可能没有必要):
var output = Regex.Match(text, @"[^,\d\s][^,\d]*$", RegexOptions.RightToLeft)?.Value;发布于 2020-10-23 14:18:08
您在(.*),[^,]*$中正确地跟踪了捕获组,但是这个组应该是您要寻找的部分。
如果必须有逗号或数字表示,您可以匹配直到它们中的最后一次出现,并捕获捕获组中接下来的内容。
^.*[\d,]\s*(.+)$^开始.*匹配除换行符0+时间以外的任何字符[\d,]匹配,或数字\s*匹配0+空格字符(.+)捕获组1,匹配除换行符1+时间以外的任何字符$末端.NET regex演示 x- C#演示

https://stackoverflow.com/questions/64501467
复制相似问题