正则表达式匹配所有内容,直到最后一个数字
本文关键字:最后一个 数字 正则表达式 | 更新日期: 2023-09-27 17:56:21
我有几个字符串看起来像这样
EXT. 6TH STREET12B
EXT. HOSPITAL20
EXT. 20TH STREET 40AB
我如何匹配所有内容,直到最后一个数字开始。结果需要为:
EXT. 6TH STREET
EXT. HOSPITAL
EXT. 20TH STREET
我根本不是正则表达式专家。我尝试了一些方法,但似乎没有什么接近。
下面是一个纯字符串方法:
var digits = "0123456789".ToCharArray();
var trimEnd = digits.Concat(new[]{' ', ''t'}).ToArray(); // if desired
for (int i = 0; i < lines.Length; i++)
{
string line = lines[i];
int lastIndexOfDigit = line.LastIndexOfAny(digits);
if (lastIndexOfDigit >= 0)
line = line.Remove(lastIndexOfDigit).TrimEnd(trimEnd);
lines[i] = line;
}
使用*
的贪婪
@".*(?<='D)(?='d)"
或
@".*(?<!'d)(?='d)"
演示
如果您不想匹配最后一个数字之前存在的空格。
@".*(?<=[^'d's])(?='s*'d)"
演示