[英]Regex pattern for getting part of a string
嗨,我有類似的字符串:
** Dealing Flop ** [ As, 4s, 8h ]
** Dealing Turn ** [ 4h ]
** Dealing River ** [ 3s ]
我需要知道是翻牌圈還是河牌以及已經發了什么牌。 現在我有
new Regex(@"^\*\* Dealing (?<flop>F)|(?<turn>T)|(?<river>R)");
我需要的應該是
new Regex(@"^\*\* Dealing (?<flop>F)|(?<turn>T)|(?<river>R)*[(?<cards>)]$");
但它不起作用。 請幫忙。謝謝。
當然,使用.Contains()
可以.Contains()
更具可讀性?
enum Situation {
Flop,
Turn,
River
}
Situation GetSituation(string input){
if(input.Contains("Flop"){ return Situation.Flop;}
if(input.Contains("Turn"){ return Situation.Turn;}
if(input.Contains("River"){ return Situation.River;}
throw new ArgumentException("Invalid situation");
}
您可以像這樣獲得演奏過的牌:
var start = myString.IndexOf("[");
var end = myString.IndexOf("]");
var hands = myString.SubString(start, (end - start)).Split(",");
如果要檢查字符串中是否包含Dealing Flop / River或Turn,則可以使用此正則表達式
(.*Dealing Flop| Dealing Turn| Dealing River.*)
然后,您可以從字符串中提取所需的所有數據。 但是,真誠地,我更喜歡@JeroenVannevel方法,因為它更清晰易懂
您可以使用此模式來了解情況和卡片:
\b(?<ftr>Flop|Turn|River) \*\* \[ (?<c1>[^], ]+)(?>, (?<c2>[^], ]+))?(?>, (?<c3>[^] ]+))? ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.