c# Regex.Replace로 숫자로 시작하지않는 문자 제거
조회수 2144회
c# Regex.Replace를 사용하는데 처음이라 잘 모르겠어요.
예를들어 a = ",123 asdf,456 ghjk,zxcv
라는것이 있으면,
Replace로 a = ",123 asdf,456 ghjk"
만 남기려고 하는데 식을 어떻게 세워야할지 모르겠네요.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
regex 패턴을
숫자있음
+단어있음
+콤마있음
으로 만드시면 되겠네요. 저는 매칭되는 단어를 출력하는 코드를 짜보았어요.패턴은
\d+.*?(?=,)
이고, 여기 들어간 regex는 lazy quantifier인*?
와 positive lookahead가 있습니다.\d+
가숫자 있음
에 해당하고요.*?
가단어 있음
에 해당합니다. ( lazy quantifier 사용)(?=,)
는 콤마 있음에 해당합니다. ( positive lookahead 사용)using System.Text.RegularExpressions; public class Hello1 { public static void Main() { string input = ",123 asdf,456 ghjk,zxcv"; Regex regex = new Regex(@"\d+.*?(?=,)"); Match m = regex.Match(input); while (m.Success) { System. Console.WriteLine("{0}:{1}", m.Index, m.Value); m = m.NextMatch(); } } }
영어 해석을 어느정도 할 줄 아신다면, Regex 사용에는 https://regex101.com/ 사이트를 추천합니다.
댓글 입력