2013-07-01 2 views
1
{unknown string} 
{unknown string 
unknown string} 
unknown string 

를 무시하는 방법 난 그냥 문자열을 인식하는 정규 표현식을 마련 할 (알 수없는, 그래서 특정 문자열을 명시 적으로 일치 할 수 없다) 위의 경우 모두 4 명을?정규식 중괄호

+1

. C# 프로그래밍 언어는 자바 스크립트 같은 언어와 달리 정규식을 지원하지 않습니다. –

+0

.Net은 C# ... sorta에 내장되어 있습니다. – mcmonkey4eva

+0

@AndreyShchekin 중괄호와 일치합니다. 그는 그 사람들을 원하지 않습니다. –

답변

3

당신은 많은 시도하지 않은, 당신이 - 정규식 잘 (있는 경우)

  • \}?} 다음은 전에 정지하도록 현재 비 욕심이 필요하십니까?

    string result = Regex.Match(input, "hello").Value; 
    

    당신은 중괄호 사이에 뭔가를하려는 경우 : 당신이 "C# 정규식은"실제로 ".NET 정규식"입니다 호출을 한 것으로 나타났습니다 무엇을 참고

    string result = Regex.Match(input, @"\{?(.*)\}?").Groups[1].Value; 
    
  • +0

    글쎄, 그 정도는 사실이지만, 나는 더 보편성을 찾고 있습니다. 다음식이 있다고 가정 해 보겠습니다. get {* body *}하지만 본문의 내용을 알지 못하므로 (따라서 특정 문자열과 일치 할 수 없습니다), 여전히 방법이 있습니까? – wemblem

    +0

    @webblem 수정되었습니다. –

    +0

    브래킷이 하나 뿐인 경우? {^? – wemblem

    2
    \w+ 
    

    당신이 사용할 수있는 "옵션 중괄호 사이에"뭔가에 일반화해야하는 경우 그것은 모든 "단어"

    을 -characters 일치 : 의미

    \{?(.+?)\}? 
    

    :

    1. \{? - 선택적 중괄호 문자. {은 정규 표현식에서 특별한 의미를 가지기 때문에 이스케이프 처리됩니다. ? 수량 기호 의미는 0 또는 1 번 (따라서 선택 사항 임)
    2. (.+?) - 욕심없는 모드의 모든 것을 의미합니다. 항목 번호와 같은 1
    +0

    '. +? '와의 거래는 무엇입니까? 대신'. *'을 사용하십시오. 당신은 욕심 많은 모드를 원할 것입니다. –

    +0

    @newStackExchangeInstance : 1. 빈 문자열을 일치로 반환해야하지만, 전혀 일치시키지 않아도되는'{}'에 대해 확신하지 못합니다. {{foo} {bar}'에 대해 확실하지 않습니다. 입력 결과'foo} {bar}를 얻을 필요가 있습니다. – zerkms

    +0

    1) 그 내용은 아무것도 아니므로 아무것도 일치하지 않아야한다고 생각합니다. 2) 그 때 무엇이 ​​돌려 보내야 하는가? 나는 이것을 위해 균형 잡힌 그룹을 만들지 않을 것이다. –