2017-02-26 16 views
1

ワイルドカードを使用して別の文字列内の文字列を検索することはできますか? "" text1 "=" text2 ""の出現箇所を探したいと思います。ここで、text1とtext2は任意の文字列です。ワイルドカードを使用した部分文字列の検索範囲の変更

私の最初の文字列は、「これは私の文字列です。この文字列が含まれて 『テキスト1』 = 『テキスト2』をはるか」

検索するときに、私はテキスト1とテキスト2を知らない。

です "" = "" "のようなものは考えましたが、結果はありません。

編集: 私は他の例について説明しようとします。 私は、ファイルを反復処理し、すべてのペアのキーとコメント見つける必要がありlocX拡張のカップルの出現

 labelPatternForExpresion.stringValue = "labelPatternForExpresion".locX(withComment: "comment one") 
    labelPath.stringValue = "labelPathToProject".locX(withComment: "comment six") 
    labelHeader.stringValue = "labelFileHeader".locX(withComment: "no comment") 
    btnFromFile.title = "btnFromFile".locX(withComment: "empty comment") 
    btnCancel.title = "btnCancel".locX(withComment: "") 

と* .swiftファイルがあります:

「labelPatternForExpresionを」 -

「1コメント」

"labelPathToProject" - "コメント6"

........

........

"btnCancel" - "" あなたのパターンを想定し

+1

ほとんどの他の現在のプログラミング言語のような正規表現を使用する可能性があります。 –

答えて

1

は次のとおりです。

"textA" - "textB" 

、あなたがtextAtextBをキャプチャしたいです。使用するNSRegularExpression

let str = "\"labelPatternForExpresion\" - \"comment one\"" 

// NSRegularExpression still deals in NSString so let's make a copy to 
// lessen the pain later 
let nsStr = str as NSString 
let regex = try! NSRegularExpression(pattern: "\"(.+)\" - \"(.+)\"", options: []) 

if let match = regex.firstMatch(in: str, options: [], range: NSMakeRange(0, nsStr.length)) { 
    let lhs = nsStr.substring(with: match.rangeAt(1)) 
    let rhs = nsStr.substring(with: match.rangeAt(2)) 
    print(lhs) 
    print(rhs) 
} 
関連する問題