How to Find Quotes within a Tag?

泪湿孤枕 提交于 2019-12-23 12:07:52

问题


I have a string like this:

This <span class="highlight">is</span> a very "nice" day!

What should my RegEx-pattern in VB look like, to find the quotes within the tag? I want to replace it with something...

This <span class=^highlight^>is</span> a very "nice" day!

Something like <(")[^>]+> doesn't work :(

Thanks


回答1:


It depends on your regex flavor, but this works for most of them:

"(?=[^<]*>)

EDIT: For anyone curious how this works. This translates into English as "Find a quote that is followed by a > before the next <".




回答2:


Regexes are fundamentally bad at parsing HTML (see Can you provide some examples of why it is hard to parse XML and HTML with a regex? for why). What you need is an HTML parser. See Can you provide an example of parsing HTML with your favorite parser? for examples using a variety of parsers.

If you are using VB.net you should be able to use HTMLAgilityPack.




回答3:


Try this: <span class="([^"]+?)?">




回答4:


This should get your the first attribute value in a tag:

<[^">]+"(?<value>[^"]*)"[^>]*>



回答5:


If your intention is to replace ALL quotation marks within tags, you could use the following regular expression:

(<[^>"]*)(")([^>]*>)

That will isolate the substrings before and after your quotation mark. Note that this does not attempt to match opening and closing quotation marks. It simply matches a quotation mark within a tag.



来源:https://stackoverflow.com/questions/857623/how-to-find-quotes-within-a-tag

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!