私はJames Bond (007)
という形式の文字列を持っています。 {name: "James Bond", code: "007"}
正規表現を使用してサブストリングを作成する
私はfor
ループを実行してこれを行うことができますが、regexpを使用してより簡単で効率的かどうかを知りたいと思います。
名前またはコードに(
または)
がないと仮定します。 ここでnodejsを使用しています。
私はJames Bond (007)
という形式の文字列を持っています。 {name: "James Bond", code: "007"}
正規表現を使用してサブストリングを作成する
私はfor
ループを実行してこれを行うことができますが、regexpを使用してより簡単で効率的かどうかを知りたいと思います。
名前またはコードに(
または)
がないと仮定します。 ここでnodejsを使用しています。
ここに置き換えるための必要はありません、ただ
const [, name, number] = "James Bond (007)".match(/(.*?) \((.*?)\)/);
console.log({name, number});
"James Bond (007)".replace(/(.* .*) \(?(.*)\)?/, '{name: "$1", code: "$2"}')
別のオプション、以上の1つのスペースで名前をサポート:
"James Bond (007)".replace(/(.*) \((.*)\)/, '{name: "$1", code: "$2"}')
名前からコードを区切る括弧があります。つまり、James Bond(007) –
はまだ動作しています。だからこそ私は '\(?' – GilZ
ありがとう、2番目のオプションが動作し、最初のオプションは末尾に残っている)をコードに追加したのです。 –
[ '/( [?](?:\ s * [az] +)*)。*?(\ d +)/ i'](https://jsfiddle.net/tusharj/r1324b3g/) – Tushar