对于此示例,如何使用正则表达式获取最后一个逗号或最后一个数字之后的字符串:
- "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/