簡體   English   中英

正則表達式選擇* .aspx,直到與z有所不同

[英]Regex to select *.aspx until something different from a-z

我有類似這樣的字符串:

string s = "Q.ROOT_PATH + 'pgs/ChangePassword.aspx?a=5'";

我想獲得.aspx之前的單詞,直到找到與az不同的字符,結果:

"ChangePassword.aspx"

我的正則表達式:

[a-z](.aspx)

我還需要做什么?

盡管您當然可以使用正則表達式來處理此問題,但是您可以考慮.NET中的一些內置函數,它們已經可以為您處理此問題。 我將提供兩個示例說明如何解決此問題(使用和不使用正則表達式)。

使用Path.GetFileNameWithoutExtension()方法

System.IO命名空間實際上公開了一個名為GetFileNameWithoutExtension()的方法,該方法將為您處理此確切操作:

// This will find the file mentioned in the path and return it without
// an extension ("pgs/ChangePassword.aspx?a=5" > "ChangePassword")
var fileName = Path.GetFileNameWithoutExtension(input);

您可以在這里看到這種方法

通過正則表達式

您可以使用Regex.Match()方法通過先行匹配將匹配.aspx之前的一個或多個字母[a-zA-Z]+的字符串來完成此操作:

// This will match any set of alphabetical characters that appear before
// an '.aspx' ("pgs/ChangePassword.aspx?a=5" > "ChangePassword")
var fileName = Regex.Match(input,@"[a-zA-Z]+(?=\.aspx)");

您可以在此處看到一個有效的示例

暫無
暫無

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

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