c# Regex如何获取数字
本文关键字:获取 数字 Regex 何获取 | 更新日期: 2023-09-27 18:18:49
如何从下一个文件名获取电话号码
- 09-33-07[9312886109902]"DN_9405 ~"(44,0,0,0). wav
- 08-47-51[9309854699902]"DN_9405 ~"(44,0,0,0). wav
- 07-58-49(9160页)"DN_9405 ~"(44,0,0,0). wav
我需要进一步
- 931288610
- 930985469
- 9160
现在我使用('d{4,})[^(9902])],但短数字是错误的
电话号码的长度为4-9?
(?<='[[a-zA-Z]+'s)'d{4,9}(?='d*'])
演示您可以使用下面的正则表达式,它最多匹配9902或]符号,
(?<=[A-Z] ).*?(?=9902|])
演示或
(?<=[A-Z] )'d+?(?=9902|])
演示您正在搜索方括号、字母、空格、1+数字和方括号。所以正则表达式是:['[][A-Z].'d+[']]
但是因为你只想提取1+数字(数字),你需要使用()
对它们进行分组,所以regex是['[][A-Z].('d+)[']]
接下来的代码很简单:
Regex regexp = new Regex("['[][A-Z].('d+)[']]");
foreach(var mc in qariRegex.Matches(yourstring))
{
Console.Writeln(mc[0].Groups[1].Value);
}
你可以试试Lookaround
(?<='[[A-Z] )'d+?(?=9902']|'])
在线演示和测试在regexstorm
模式说明:
(?<= look behind to see if there is:
[[A-Z] any character of: '[', 'A' to 'Z'
) end of look-behind
'd+? digits (0-9) (1 or more times)
(?= look ahead to see if there is:
9902] '9902]'
| OR
] ']'
) end of look-ahead