簡體   English   中英

正則表達式匹配所有內容,直到最后一個數字

[英]regex match everything up till last number

我有幾個看起來像這樣的琴弦

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)"

DEMO

如果您不想匹配最后一個數字之前的空格。

@".*(?<=[^\d\s])(?=\s*\d)"

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM