2015-06-24 45 views
0

进出口寻找凑一些HTML和输出颜色正则表达式:选择第一个字符,然后标签

<name>Whatever</name> 

被刮掉和输出之间的休息是这样的:

[color=green]W[/color][color=purple]hatever[/color] 

我刚才第一个完成选择和第二个字符与所需的颜色标记,但它只给出第一个和第二个字符,就像我提到的使用这个:

<name>[A-Za-z][A-Za-z0-9]*</name> 

我已经修好了一些没有成功,任何帮助,将不胜感激。谢谢

编辑:更多信息

这是代码。它与Python读不知道究竟什么ü会调用这个寿

skill=videoTitle 
skill=allowDuplicates 
item_infos=<name>[A-Za-z][A-Za-z0-9]*</name> 
item_order=first|rest 
item_skill=rss 

item_info_name=title 
item_info_from=[COLOR=green]' + first + '[/COLOR][COLOR=purple]' + rest + ' [/COLOR] 
item_info_build=%s` 

编辑:在道路的另一种凹凸:

得到它与Fedes回答工作: <name>(.)(.*?)<\/name>

现在我正在寻找不省略空场。当他们像显示器一样空着时,标题之后的其他空白场景。感谢所有帮助在这里人:)

+0

您可以发布您的实际正则表达式?假设你使用JavaScript是否安全? – BTC

+0

还值得注意的是,你应该使用正则表达式来匹配标签的内容而不是HTML本身。 – BTC

+0

病态广告信息顶部 –

回答

0

众所周知,你不应该用正则表达式解析xhtml,因为你可以搞砸unicode字符的东西。如果你一定要使用正则表达式

,你可以使用这样的正则表达式:

<name>(.)(.*?)<\/name> 

随着替换字符串就象这样:

[color=green]$1[/color][color=purple]$2[/color] 

Working demo

在另一方面,如果你想为所有的标签做,你可以使用这样的东西:

<(.*?)>(.)(.*?)<\/\1> 

替换字符串:

[color=green]$2[/color][color=purple]$3[/color] 

Working demo

+0

您的第一种方法工作费非常感谢。如果你可以,还有1个问题。如果省略空标签,例如如果一个文件有''行,并且输出一堆标签围绕它,我宁愿将它们跳过。我最近发现这个''([^> /] [^>] *)',如果我把它全部删除,但它不适合 –

+0

@BobbyPeters,这就是为什么正则表达式不是解析html的正确选择。当你有内部标签时它会变得混乱。正则表达式只是模式匹配的工具,但如果您需要逻辑,则必须使用html解析器。 –

+0

好的感谢您的帮助Fede。我很感激 –

相关问题