簡體   English   中英

使用RegEx獲取子字符串

[英]Get substring with RegEx

我真的在RegEx方面掙扎。 我希望我的RegEx(如果可能)做兩件事:

1-驗證整個字符串是否遵循格式NAME_STKBYGRP.CSV

2-如果匹配,則提取NAME子字符串

例子:

TEST_STKBYGRP.CSV -> TEST
other_stkbygrp.csv -> other
test_wrong.csv -> ""

這是我到目前為止嘗試過的

string input = "NAME_STKBYGRP.CSV";
Regex regex = new Regex("([A-Z])*_STKBYGRP.CSV", RegexOptions.IgnoreCase);
string s = regex.Match(input).Value;

如果不匹配,則返回"" ,但如果匹配,則返回整個input

如果只需要第一個組的值,則需要讀取regex.Match(input).Groups[1].Value

如果要排除諸如evilnumber12345_NAME_STKBYGRP.CSVevilsuffix字符串, evilnumber12345_NAME_STKBYGRP.CSVevilsuffix在正則表達式的開頭和結尾處添加^$

編輯: adv12*的位置也有個好處 -它應該在括號內。

首先,您的*應該在括號內。 否則,您將捕獲幾個單字符組。 然后,使用Match.Groups[1]來獲取括號中正則表達式部分所匹配的字符。

暫無
暫無

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

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