2013-10-25 5 views
1

Я написал это в javascript (в Интернете), но так как я пытаюсь использовать RegExpression, он должен работать почти так же.Регулярное выражение (сравнение строк)

У меня есть строка с некоторыми координатами в ней, разделенная пробелом.

var coords = "0:0 0:0:0 1:0:1 0:0:0:1"; 
var part = "0:0"; 

Я хочу, чтобы все координаты, начинающиеся со значения детали («0: 0»);

Что я судимое что-то вроде:

var reg = new RegExp(part+"*"); 
alert(coords .match(reg)); 

Но это, кажется, не работает propperly.

Он должен соответствовать "0: 0" и "0: 0: 0" и "0: 0: 0: 1", но НЕ "1: 0: 1" (редактировать)

Любой имеет идею ?!

С уважением!

+0

Попробуйте это var reg = new RegExp (part, "*"); – N20084753

+1

Вы не поняли. Соответствует ли это '0: 0: 0' и/или' 0: 0: 0: 1'? – epascarello

+0

он должен соответствовать «0: 0» и «0: 0: 0» и «0: 0: 0: 1», но NOT «1: 0: 1» – marius

ответ

1

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

var reg = new RegExp("(^|\\s)(" + part + "\\S*)", "g"); 

, который должен соответствовать всем без пробела после 0:0 и остановится, когда она попадает в пространство или конца строки.

+0

все еще не работает:/распечатывает только один раз «0: 0», я читал об этом, но не знал, что он содержит конец строки, возможно, мне нужно установить модификаторы ?! – marius

+0

@marius: вам нужно использовать глобальный переключатель для захвата всех строк, см. Отредактированный ответ. – anubhava

+0

ah okay кажется законным, но я вернусь не координаты, это три раза «0: 0» – marius

Смежные вопросы