簡體   English   中英

如何使用正則表達式從字符串中提取具有擴展名的單詞?

[英]How to extract a word which is having an extension from a string using regex?

我需要在擴展名之前從字符串中提取一個單詞。 假設我有一個類似的字符串:

"Hey Stackoverflow.xyz Whats up?"

我需要提取一個擴展名為.xyz的單詞,即Stackoverflow。 如何做到這一點?

您可以使用積極的前瞻性來確保要提取的字符串使用此正則表達式遵循.xyz

\S+(?=\.xyz)

演示

試試這些C#代碼,

string str = "Hey Stackoverflow.xyz Whats up?";
var m = Regex.Match(str,@"\S+(?=\.xyz)");
Console.WriteLine(m.Groups[0].Value);

輸出,

Stackoverflow

在線C#演示

如果您想使用擴展名Stackoverflow.xyz提取字符串,只需將regex的前瞻部分更改為普通字符串,如下所示,

\S+\.xyz
/(\w+)\\.[^\W]+/

在regex101上玩

使用以下正則表達式提取擴展名之前需要的單詞

\s(.*)?\.

此處將使用方括號捕獲單詞。

string str = "Hey Stackoverflow.xyz Whats up?";
var regexResult = Regex.Match(str,@"\s(.*)?\.");
Console.WriteLine(regexResult.Groups[1].Value);

暫無
暫無

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

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