현재 프로젝트에서 나는 부분 문자열로 작업해야하며 문자열에서 숫자를 추출하는 쉬운 방법이 있는지 궁금합니다.문자열에서 특정 숫자 얻기
예 : 내가 가진이 같은 문자열 : 12 텍스트 텍스트 7 텍스트
내가 나갈 사용할 수있게하려면첫 번째 숫자 설정하거나 두 번째 번호를 설정합니다. 그래서 번호 집합 1을 요청하면 답례로 12를 얻을 것이고 숫자 집합 2를 요청하면 7을 얻을 것입니다.
감사합니다.
현재 프로젝트에서 나는 부분 문자열로 작업해야하며 문자열에서 숫자를 추출하는 쉬운 방법이 있는지 궁금합니다.문자열에서 특정 숫자 얻기
예 : 내가 가진이 같은 문자열 : 12 텍스트 텍스트 7 텍스트
내가 나갈 사용할 수있게하려면첫 번째 숫자 설정하거나 두 번째 번호를 설정합니다. 그래서 번호 집합 1을 요청하면 답례로 12를 얻을 것이고 숫자 집합 2를 요청하면 7을 얻을 것입니다.
감사합니다.
:
Regex
과 잘 어울리는 것 같습니다.
일치하는 기본 정규식은 \d+
(하나 이상의 숫자)입니다.
Matches
컬렉션을 반복하여 Regex.Matches
에서 반환하고 차례로 각 구문을 구문 분석합니다.
var matches = Regex.Matches(input, "\d+");
foreach(var match in matches)
{
myIntList.Add(int.Parse(match.Value));
}
정규 표현식을 사용해보십시오, 당신은 당신의 문자열에서 숫자의 실행을 일치 [0-9]+
을 일치시킬 수 있습니다. 이 정규식을 사용하는 C# 코드는 대략 다음과 같습니다.
Match match = Regex.Match(input, "[0-9]+", RegexOptions.IgnoreCase);
// Here we check the Match instance.
if (match.Success)
{
// here you get the first match
string value = match.Groups[1].Value;
}
물론 반환 된 문자열을 구문 분석해야합니다. 다음 travese 당신이 사항 String.split를 사용하여 부분 문자열을 분할 할 수 있습니다
using System.Linq;
using System.Text.RegularExpressions;
class Program {
static void Main() {
string text = "12 text text 7 text";
int[] numbers = (from Match m in Regex.Matches(text, @"\d+") select int.Parse(m.Value)).ToArray();
}
}
당신은 정규 표현식을 사용할 수 있습니다 foreach에 int.TryParse를 적용한 목록 :
string test = "12 text text 7 text";
var numbers = new List<int>();
int i;
foreach (string s in test.Split(' '))
{
if (int.TryParse(s, out i)) numbers.Add(i);
}
이제 숫자에 목록이 있습니다. 유효 값 :
'0'은 허용되지 않습니다. – Oded
하고,이 문자열에서 정수 배열을 생성합니다
Regex regex = new Regex(@"^[0-9]+$");
안녕하세요, 잡아 주셔서 감사합니다. 첫 번째 문장에서 언급했듯이 TryParse 여야합니다. 나는 그것을 바로 잡았다. –
고마워, 내가 필요한 것! : D 다운 투표에 불쌍해서 새로 등록했기 때문에 투표를 할 수 없다는 것을 몰랐습니다. –
@ TobiasLindberg : 기꺼이 도와주었습니다.이 경우 아래 투표를 취소 할 수 있습니다 :). –
미안하지만 클라이언트 쪽 일뿐입니다. 실제로 투표하지 않았습니다. 다시 한 번 감사드립니다! –