[英]c# Regular expression for words in brackets with separator
我需要解析文本,並檢查是否所有方括號之間是一個-
和前后-
必須至少有一個字符。 我嘗試了以下代碼,但是它不起作用。 比賽人數過多。
Regex regex = new Regex(@"[\.*-.*]");
MatchCollection matches = regex.Matches(textBox.Text);
示范文本:
Node
(Entity [1-5])
想通了,我不妨提供一個答案...重申我的觀點(進行修改):
*
匹配0個或多個事件。 您可能想要+。 [
和]
將所有這些放在一起,以下內容將使您更好:
Regex regex = new Regex(@"\[[^-[\]]+-[^[\]]+\]");
盡管有點混亂,但關鍵是[^[\\]]
表示除方括號外的任何字符。 [^-[\\]]
表示但也不允許-
。 這是一項優化,不是必需的,但它只是減少了正則表達式引擎在進行匹配時要做的工作。 感謝ridgerunner指出這種優化。
方括號表示正則表達式中的特殊內容,您需要對其進行轉義。 另外,如果要至少一個字符,則需要使用+
而不是*
。
Regex regex = new Regex(@"\[.+-.+\]");
MatchCollection matches = regex.Matches(textBox.Text);
string txt = "(Entity [1-5])";
Regex reg = new Regex(@"\[.+\-.+\]");
如果用於#:
string txt = "(Entity [1-5])";
Regex reg = new Regex(@"\[\d+\-\d+\]");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.