Написать выражение в JavaScript - PullRequest
2 голосов
/ 27 апреля 2010

Мне нужен код JavaScript, который разбивает строку как показано ниже:

Входная строка: "a => aa | b => b || b | c => cc"

Выход:

a=>aa

b=>b||b 

c=>cc

Я бы написал разные коды вроде:

split(/ \ | /)

или

split(/ \| (?! \ |) /)

но не сработало.

пожалуйста, помогите мне ...

Мне действительно нужно это быстро.

Ответы [ 3 ]

3 голосов
/ 27 апреля 2010

Сплит с /\|(?=\s)/ для вашего случая

"a=>aa| b=>b||b | c=>cc".split(/\|(?=\s)/)
# a=>aa
# b=>b||b 
# c=>cc
1 голос
/ 27 апреля 2010

Это странное на вид регулярное выражение будет работать без пробелов вокруг труб:

var matches = "a=>aa|b=>b||b|c=>cc".match(/(?:[^|]|\|\|)+/g)

Вместо разделения он ищет токены с двойными каналами, но не одиночные. Если у вас есть пробелы и вам нужно соответствовать b=>b|b | c=>5, используйте регулярное выражение S.Mark, но это может помочь в других случаях.
Чтобы уточнить, [^|]|\|\| читает [not a pipe] OR [two pipes].

0 голосов
/ 27 апреля 2010

Я проверил первый ответ, и он не сработал так, как я полагаю, вы хотели:ваше регулярное выражениеТакже ответ @ S.Mark действителен, проверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...