如何获取两个'{'括号'}'使用.net设置
本文关键字:设置 括号 net 使用 两个 何获取 获取 | 更新日期: 2023-09-27 18:04:19
我有一个字符串"Item Name {Item Code} {Item ID}"
,我想提取{}
(即{Item Code}
)第一次出现之间的文本,我使用了
Regex.Match( "Item Name {Item Code} {Item ID}", @"'{([^)]*)'}").Groups[0].Value
但是我得到了"{Item Code} {Item ID}"
我该怎么做呢?
'{([^)]*?)'}")
让它变懒,它就会工作
IMHO使用这样的正则表达式:'{(.*?)'}
你的正则表达式有一个无用的[^)]
,这与*
的意义将是选择到)
字符,但没有)
。所以,最好使用我的正则表达式。
demo here: http://regex101.com/r/eM6iL0
应该是{([^}]*)}
。不是字符类中的)
,而是}
。意思是,匹配除(直到)}
之外的所有内容。
当你有像foo {bar {baz} not match {}
这样的输入时,你可能想使用{([^{}]+)}
。
使用regex更好,但由于您标记了substring
,这里是方法;
string s = "Item Name {Item Code} {Item ID}";
int index1 = s.IndexOf('{');
int index2 = s.IndexOf('}') ;
string result = s.Substring(index1 + 1, index2 - index1 - 1);
Console.WriteLine(result);
这里a demonstration
。
IndexOf
方法获取指定字符第一次出现的索引。