2016-06-24 7 views
-1

오늘 정규 표현식을 배웠고 빠른 표현을했습니다.단어가 문자열 끝에 있는지 어떻게 확인합니까?

([\s]+\(?fe?a?t(?:uring)?\.?[\s]*) 

이는 노래 파일 이름의 '기능'부분과 일치합니다.

아티스트 - 제목

또는

아티스트 2ndArtist 특징 - 제목 피트 2ndArtist

또는

아티스트 - 제목 묘기를.

아티스트 - 나는 차가운 위업

있습니다 2ndArtist 내 표정에 추가 할 수있는 무엇

은 같은 파일 이름을 일치 중지?

+1

이것은 여러 번 답변되었지만 (문서에서는 분명히 제공됩니다.) 누군가가 곧바로 복사 붙여 넣기 준비 응답을 줄 것입니다 ... –

+0

정규식의 끝에'(?!)'를 추가하십시오. – 4castle

+0

고마워요. 4castle을 고맙게 여긴다면, 어떻게 공백을 포착하지 않을까요? – Trontor

답변

0

그 목적으로 String.EndsWith 방법을 사용하는 것이 좋습니다. 그리고 당신은 모든 공백을 제거하는 Trim() 방법을 사용할 수 있습니다 :

bool result = myString.Trim().EndsWith(”Artist”); 
+0

"아티스트", "제목"및 "2ndArtist"는 단지 자리 표시 자입니다. 실제 이름은 사전에 알려지지 않습니다. OP는 단어 "featured"(또는 same의 약자)를 사용하여 추가 아티스트 이름이있는 경우 해당 단어를 찾습니다. –

0

당신 '앵커'라인의 끝에 당신의 패턴, 수 있지만 같은 와일드 카드 일치를 사용하여 조심해야 * 앵커 전에..

'보는 것'은 중간에 '특징으로'하는 것입니다. 그래서 문자, 단일 공간, '특징', 단일 공간, 일부 문자. 그래서 나는이처럼 내 정규식을 만들 것입니다 :

이 가
var pattern = @"(.*) (ft\.?|feat\.?|featuring) (.*)"; 

이, 또는 단지 전체의 경기를 3 개 부분으로 나누어 경기를 줄 것이다 :

var pattern = @"(.* (?:ft\.?|feat\.?|featuring) .*)"; 

참고 문자열 앞에 @가 필요 방지 백 슬래시를 벗어날 수 있습니다.

관련 문제