使用正则表达式拆分字符串

时间:2018-01-26 09:11:46

标签: javascript regex

我想将以下str拆分为一个包含2个元素的数组,第一个是“句子中的某些单词”,第二个是“ABC”,其中ABC可以是任何大写字符。

const str = 'Some words in a sentence (ABC)';
const regex = ?
const arr = str.split(regex);
...
expect(arr[0]).to.eq('Some words in a sentence');
expect(arr[1]).to.eq('ABC');
expect(arr.length).to.eq(2);

任何想法都会受到赞赏。

干杯,

2 个答案:

答案 0 :(得分:2)

正则表达式的技巧是将其分解为步骤。

  • 您需要两个元素,即两个组,例如(<-- between these -->)
  • 最简单的就是获得(ABC)结尾 - &gt; \((.*?)\)$(转义()&#39; s
  • 现在你可以得出结论,剩下的就是另一部分:(.*?)

<子>解释

                          /---\   is the \((.*?)\)$
 Some words in a sentence (ABC)
 ^----      (.*?)    ----^

这应该会让你朝着你想要的方向前进,最后一部分是你要弄明白的。)

答案 1 :(得分:0)

转到https://regex101.com/并尝试此

/(.*)\(([A-Z]{3})\) /

用你的字符串

'Some words in a sentence (ABC)'

你会得到

Match 1
Full match  0-30    `Some words in a sentence (ABC)`
Group 1.    0-25    `Some words in a sentence `
Group 2.    26-29   `ABC`