当前位置: 首页 > 面试题库 >

使用RegExp在JavaScript中拆分字符串,忽略方括号内的定界符

商业
2023-03-14
问题内容

我有需要拆分的各种字符串实例。以下是一些示例和所需的输出方案。还列出了拆分规则:

范例1:

input: 'filename.ext|someattributes'
output array: 
  'filename.ext', 
  'someattributes'

范例2:

input: qualifier1[filename.ext|someattributes]|qualifier2[another_filename.ext|some_other_attributes]
output array: 
  'qualifier1[filename.ext|someattributes]',
  'qualifier2[another_filename.ext|some_other_attributes]'

范例3:

input: dummyqualifier|qualifier1[filename.ext|someattributes]
output array: 
  'dummyqualifier', 
  'qualifier1[filename.ext|someattributes]'

规则很简单。使用’|’分割字符串 仅当它不出现在方括号内时用作分隔符。注意:字符串可能没有任何方括号。输入字符串中没有空格。

我正在寻找JavaScript解决方案,因为这是针对node.js模块的。


问题答案:

此正则表达式适用于您概述的情况:

/\|(?!(?:\w+\|?)+])/

这是一个正在运行的示例:http :
//jsfiddle.net/UFq3h/1/(您需要打开控制台才能查看结果)。

粗略的解释: 不带 后跟的任何|字符(单词字符或后跟)。如果您需要更精确的说明,请发表评论,我会尝试使其更清晰。 __|`` ]

编辑:感谢Lolo的改进版本,该版本处理用例中的最后一个示例。



 类似资料:
  • 我想将“word1和word2或(word3和(word4或word5))和word6”等字符串与“和”分开,以便从括号外获得:“word1”“word2或(word3和(word4或word5))”“word6” 请注意,括号组可以包含许多其他括号组。 我做了一些研究,我发现了一个正则表达式,它与我想要的相反:这个正则表达式选择括号之外的“AND”以外的所有内容。我还尝试了前瞻和后视,但没有成功

  • 我想用preg_split来分割这段文字 在此阵列中: 但我不知道怎么。。。

  • 问题内容: 我正在寻找将其转换为6个元素的数组:a,b,c,“ d,e,f”,g,h。我正在尝试通过Javascript执行此操作。这是我到目前为止所拥有的: 但是现在,它会将双引号中的所有内容都分割开了,这是不正确的。 编辑:好的,抱歉,我对这个问题的措辞很差。给我一个字符串而不是数组。 我想使用“ split”功能将 其 转换为数组。 问题答案: 这就是我要做的。

  • 我有一根下面这样的弦- value1,value2,value3,value4,“value5,1234”,value6,value7,“value8”,value9,“value10,123.23”

  • 问题内容: 我有一个像这样的字符串: 上面的字符串应分为: 问题答案: 我认为最简单的解决方案是处理输入字符串char-by-char: 例: 作为免费赠品,此解决方案还根据需要计算嵌套括号: 它还检查括号是否平衡(每个开放的括号都有相应的结束符)。

  • 问题内容: 我正在尝试执行类似以下的拆分: 输出: 我要执行此拆分: 但我看到: 有什么办法可以摆脱括号吗?任何帮助表示赞赏。 问题答案: