2016-04-12 3 views
-3
<font color="black"> 
<font color="red"> 
<font color="white"> 

мне нужно, чтобы захватить все вокруг color="*"Regex: Получите все вокруг строки

С color="(.*?)" я могу захватить цвет attribut, знаю я должен инвертировать.

+0

Можете ли вы быть более конкретным? Вы хотите захватить все, кроме color = "myColor"? –

+0

@MattKelly Да. Вот и все. – Wavum

ответ

1

Я предполагаю, что вы хотите его в JavaScript regex (ароматы регулярных выражений отличаются от языка к языку). Что-то вроде:

var htmlText = '<font color="black">\n' + 
       '<font color="red">\n' + 
       '<font color="white">'; 
var colorRegEx = /color=["']+([^\"\']*)["']+/ig; 
while(colorRegEx.exec(htmlText)) { 
    console.log(RegExp.$1);  //Should give you: black, red, white 
} 

В основном регулярное выражение говорит: ищите «цвет =», то по крайней мере 1, либо одиночной или двойной кавычки, то получим значение, пока мы не увидим еще одного или двойные кавычки.

Хотя, если вы делаете что-то в своем веб-приложении, вы, вероятно, захотите использовать jQuery или какую-нибудь другую библиотеку JS, чтобы помочь получить значения. , например.

<div id="fred"> 
    <font color="black">Hello</font> 
    <font color="red">I like</font> 
    <font color="white">ice cream</font> 
</div> 

Тогда некоторые JQuery, чтобы получить значения цвета будут:

$.each($('#fred').children(), function(index, item) { 
    console.log($(item).prop('color')); 
}); 
+0

Отличный ответ! Извините, но мне это нужно для Java. Он также работает на Java? – Wavum

+0

Извините, что я не Java-разработчик, поэтому я не совсем уверен, но ядро ​​RegEx, вероятно, пригодно для использования. Я сделал это http://fiddle.re/77wtda, но я слишком устал, чтобы настроить JDK и попробовать его попробовать. (нажмите зеленую кнопку Java, а затем нажмите «Тест») – icepicker