2013-12-24 3 views

ответ

2

Вы можете использовать отрицание матча здесь. Обратите внимание, что я избежал \ символа новой строки для этого примера.

var myString = "blah blah * Match this text Match this text\ 
      Match this text\ 
      Match this text\ 
      Match this text\ 
      *\ 
more text more text"; 

var result = myString.match(/\*([^*]*)\*/); 
console.log(result[1]); 

// => " Match this text Match this text   Match this text   Match this text   Match this text   " 

См Working demo

Если вы не хотите, начальные или конечные пробелы, вы можете использовать следующую информацию, чтобы она не жадный.

var result = myString.match(/\*\s*([^*]*?)\s*\*/); 
console.log(result[1]); 

// => "Match this text Match this text   Match this text   Match this text   Match this text" 
+0

Это работает, хотя я не хочу, чтобы звездочка была в конечном выпуске. Благодарю. – BarelyConfused

+0

Звездочка не будет выводиться, если вы обратитесь к своей группе захвата. – hwnd

+0

Nevermind Я вижу, что вывод находится в индексе один. Тем не менее, мне любопытно, почему мой вход возвращает 3 совпадения, причем последний из них является числом? См. JsFiddle: http://jsfiddle.net/gfF33/ – BarelyConfused

0

[\s\S] соответствует любому пространству и любому непространственному символу. То есть любой символ, даже разрывы строк. (проверено here).

\*[\s\S]*\* 

Also, check this SO question.

0

Попробуйте это: /(\*)([^\0].+)*(\*)/g:

Live Demo

var regex = /(\*)([^\0].+)*(\*)/g; 
var input = "* Match this text Match this text (this is a line break -> \n) Match this text (\n) Match this text Match this text * more text more text"; 
if(regex.test(input)) { 
    var matches = input.match(regex); 
    for(var match in matches) { 
     alert(matches[match]); 
    } 
} 
else { 
    alert("No matches found!"); 
} 
+0

Это работает, хотя и не с моим входом. – BarelyConfused

0

Эти ответы помогут вам как now и в future.

С консоли:

> "blah blah * Match this text Match this text\ 
      Match this text\ 
      Match this text\ 
      Match this text\ 
      *\ 
more text more text".match(/[*]([^*]*)[*]/)[1] 

" Match this text Match this text   Match this text   Match this text   Match this text   " 
+0

Спасибо, я посмотрю. – BarelyConfused

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