1
내 문제는 대답을 찾고 있었지만 찾을 수 없어서 여기에 적었습니다.Regex C에서 여러 번 일치하는 숫자 C#
내가 문자열 예를 먹고 싶어 : 시작 길이 11의 숫자에 대한 모든 일치 = "37,513,220102304920105590"
을 찾아 3 또는 4
내가 그렇게 시도하고있다 :
string input = "37513220102304920105590"
var regex = new Regex("^[3-4][0-9]{10}$");
var matches = regex.Matches(trxPurpose);
// I expect it to have 3 occurances "37513220102", "32201023049" and "30492010559"
// But my matches are empty.
foreach (Match match in matches)
{
var number = match.Value;
// do stuff
}
제 질문은 : 정규 표현식이 잘못 되었나요? 아니면 수학에 문제가 있습니까?
당신은 쓸 수있다'[34]'와'\ d' 당신이 당신을 만들고 싶어 regex short;)'? =', 좋은 것에 대해서는 몰랐다. –
예,'[3-4]'='[34]'. 그것은 OP에 더 많은 메모입니다. '\ d'에 대해서는'RegexOptions.ECMAScript' 플래그를 추가하는 것과 함께 그것을 할 것입니다. 왜냐하면'\ d'는 ASCII 숫자 이상을 매치하기 때문입니다. [*'\ d'는'[0-9]'* (http://stackoverflow.com/a/16621778/3832970)보다 비효율적입니다. –
'[0-9] {10}'대신'\ d {10}'을 쓰면, 더 짧게 만들 수 있다고 생각하지 않습니다. –