我能有一個string
以下變種:是否可以寫一個正則表達式來檢查幾個條件
text
[text]
或[@text]
[OPTIONAL text]
或[OPTIONAL @text]
這些都是可能性。是否有可能通過正則表達式來方便地提取了以下信息:
- 什麼是
text
, - 是它通過
[
和]
包圍, - 是否有
OPTIONAL
字, - 是否有
@
之前text
?
至於什麼我迄今所做的,我可以
var expressionMatch = Regex.Match(token, "[.*]");
if (expressionMatch.Success)
{
// use now expressionMatch.Value;
// check in the same way whether OPTIONAL word is there, etc.
}
// the input == text, all properties are false
但是,這是醜陋的。有沒有一個漂亮/乾淨/簡單的方法來做到這一點?
我會命名這些組。不匹配的組將爲空:string pattern = @「(?'preBracket'\ [)?(?'optional'OPTIONAL)?\ s?(?'ampersand'@)?(?'text'\ W +)( 'postBracket' \])「?; – jdweng