iOS で正規表現を使用して文字列を分割する
ループを使用してこの問題を解決しましたが、より明確な回答が必要であり、reg exe の第一人者が私を助けてくれることを願っています。
私の元の文字列は次のようになります
NSString *originalString = @"343 a mr smith needs this work";
NSString *originalStringVerTwo = @"345a mr jones needs this work as well";
NSString *originalStringVerThree = @"345 Mrs Someone";
3 つの別個の新しい文字列に分ける必要があります。
- 末尾に「a」または「b」が付いている、または付いている数字。間に空白がある場合は削除する
- 人名、大文字かどうか、つまり、スミス氏やジョーンズ夫人など
- この後、最終文字列に含まれる 0 個以上の単語
例えば
- 123a さん、ここにいくつかの単語があります
- 124 b ミセス・ジョーンズ n/p
- 654 フーさん
- 123 ジョーンズ n/p
- 345人
次の結果になるはずです
ライン1
NSString *one = 123a
NSString *two = mr who
NSString *three = here are some words
2行目
NSString *one = 124b // i want the white space removed between number and digit
NSString *two = mrs jones
NSString *three = n/p
3行目
NSString *one = 654
NSString *two = Mr Foo
NSString *three = @""
4行目
NSString *one = 123
NSString *two = Jones
NSString *three = n/p
5行目
NSString *one = 345
NSString *two = n/p
NSString *three = @""
定数は次のようになります
- 「a」「b」の有無にかかわらず 3 桁の数字 (123、123 a、123b)
- 敬称の有無にかかわらず人の名前 (Mr jones, jones)
- 人の名前は不明である可能性があります-したがって、「n/p」の正確なテキスト
- 名前の後には、\n で終わる長さ n の文字列が続きます (これは一連の単語\n です)。
123a から 123a への空白の除去は理想的ですが、主要な要件ではありません