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

Javascript 使用正则表达式拆分字符串,javascript,regex,Javascript,Regex,我想把下面的str拆分成一个数组,它有两个元素,第一个是“句子中的一些单词”,第二个是“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.

我想把下面的str拆分成一个数组,它有两个元素,第一个是“句子中的一些单词”,第二个是“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);
如有任何想法,将不胜感激

干杯

保罗去试试这个

/(.*)\([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`

正则表达式的诀窍是将其分解为多个步骤

  • 您需要两个元素,即两个组,例如
    ()
  • 最简单的方法是在末尾得到(ABC)->
    \(.*)\)$
    (转义的())
  • 现在您可以得出结论,其余部分是另一部分:
    (.*)
解释:


这应该会推动你朝着你想要的方向前进,最后一部分是让你去弄清楚:)

所以这不是一个免费的代码生成器。你试过什么吗?给我们展示最小的努力我不认为你可以通过简单的拆分得到那个结果,你会在拆分
[()]
时得到一个额外的空字符串元素哇,我所要求的是人们的“想法”而不是代码。我认为这是一个提问的好地方——显然不是:-(谢谢你的想法,非常感谢。谢谢你的想法,非常感谢。
                          /---\   is the \((.*?)\)$
 Some words in a sentence (ABC)
 ^----      (.*?)    ----^