私は「ジョンB.スミス」という名前を持っています。名前の形式を「スミス、ジョンB」に変更する必要があります。正規表現を使うことを考えていたのですが、読んでもよくわかりません。誰かが助けることができますか?
また、表現の中で何が起こっているのかを説明していただけますか?
正規表現が一般的に使用される電子メールアドレスまたはHTTPアドレスを解析するのと比較して、Regexは名前のような単純なものを解析するにはやり過ぎかもしれません。
名前をスペース文字で分割してから、最初の(John)の前に3番目の配列要素(Smith)(コンマを挿入)を使用して新しい文字列を作成してみませんか。
これが私がRubularに置いた例です。
私が使用した正規表現はです(\w+)\s+(\w+)\s+(\w+)
。その内訳は次のとおりです。
\w+
、1つ以上の文字、数字、またはアンダースコアを含む正規表現を探していると言っています。これは一般的に単語を探すために使用されます。\s+
、1つ以上のスペース文字を探しています。()
は、この正規表現が一致した入力の部分をキャプチャしたい(別名覚えている)ことを意味します。