正则表达式从字符串中获取值
本文关键字:获取 字符串 正则表达式 | 更新日期: 2023-09-27 17:56:34
我试图从字符串1-1:0.0.0(123123)
中获取值这是代码
string str = "'r'n1-1:0.0.0(123123)'r'n";
string patt = @"1-1:0.0.0('(.*?)')'s";
Match match = Regex.Match(str, patt,RegexOptions.IgnoreCase);
string v = match.Groups[1].Value;
问题是我没有得到明确的值 = "(123123"
有人可以解释为什么开头有圆括号吗?:/
您的首轮比赛'(
位于捕获组(
的开头。
将('(
替换为 '((
。
还要将0.0.0
替换为0'.0'.0
以更好地衡量。
括号
的转义不正确。
将模式更改为以下内容(请注意,反斜杠位于第一个开头(
的前面):
@"1-1:0.0.0'((.*?)')'s";
您的转义字符('(
放错了位置:
请尝试以下
string str = "'r'n1-1:0.0.0(123123)'r'n";
string patt = @"1-1:0.0.0'((.*?)')'s";
Match match = Regex.Match(str, patt, RegexOptions.IgnoreCase);
string v = match.Groups[1].Value;
这将打印
123123
您的捕获组是 ('(.*?)
,这是一对括号,用于创建捕获组,内容为 '(.*?
- 匹配文字左括号和任何字符的非贪婪序列。
另请注意,模式中的.
字符不是匹配文字点,而是匹配任何字符,我指出这一点,因为目标字符串似乎包含点。