2015-07-03 4 views
0

Это моя тестовая строкарегулярное выражение возвращения массив матчей

'Please disregard this.\r\n\r\n**Jonathan O\'Donnell: Estimated Time: 10 Hours.**\r\n\r\n**Jonathan O\'Donnell: 2 Hours May 15, 2015**\r\n**Chris Kuhar: 4 Hours May 30, 2015**'

и это мой Javascript регулярное выражение до сих пор.

/(\*\*.*?\*\*)/

Это соответствует первое вхождение отлично, но я хочу все случаи.

ответ

4
/(\*\*.*?\*\*)/g 
       ^^ 

Модификатор g используется для выполнения глобального матча (найти все матчи, а чем остановка после первого матча).

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

var str = 'Please disregard this.\r\n\r\n**Jonathan O\'Donnell: Estimated Time: 10 Hours.**\r\n\r\n**Jonathan O\'Donnell: 2 Hours May 15, 2015**\r\n**Chris Kuhar: 4 Hours May 30, 2015**'; 
 

 
var reg = /\*\*([^:]+)\:\s*(.+)\*\*/g, fields = [], item; 
 
while(item = reg.exec(str)){ 
 
    fields.push({name:item[1], time:item[2]}) 
 
} 
 

 
console.log(fields)
<script src="http://www.wzvang.com/snippet/ignore_this_file.js"></script>

+0

@JonathanO Вы можете принять это как правильный ответ. –

3

Вы можете использовать /g в выражении регулярного выражения, которое будет искать глобально.

Модификатор g используется для выполнения глобального соответствия (найти все совпадения, а не останавливаться после первого совпадения).

Таким образом, окончательное выражение становится /(\*\*.*?\*\*)/g

1

Использование String.match (/ ваше регулярное выражение/г); ref

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