繁体   English   中英

匹配以THIS开头的字符串,直到正则表达式

[英]Match string starting with THIS until THAT Regex

这是我的文件内容。

Whatever conent goes here
# --------------- POINT OF INTEREST BEGIN ------------------- #

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.1.2">
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:ModifyDate="2014-03-06T12:39:48+05:00" exif:DateTimeOriginal="2014-03-05T18:26:01+05:00">
            <dc:creator>
                <rdf:Seq>
                    <rdf:li>Picasa</rdf:li>
                </rdf:Seq>
            </dc:creator>
        </rdf:Description>
    </rdf:RDF>
</x:xmpmeta>
# --------------- POINT OF INTEREST ENDS ------------------- #
Whatever content goes here

这就是我想要达到的目标。 我想匹配<x:xmpmeta and选择整个文件路径,直到</x:xmpeta>我现在很难以以下形式转换正则表达式。

"Start from <x:xmpmeta and whatever comes after that including \r\n untill </x:xmpmeta>"

如何在正则表达式中翻译它?

这很简单,只要您没有在其他<x:xmpmeta>元素内嵌套任何其他<x:xmpmeta>元素:

<x:xmpmeta[\\w\\W]*?</x:xmpmeta>

既包含单词字符类又包含其否定字符类的字符集[\\w\\W]是匹配所有内容(包括换行符)的简便方法。 如果您出于某种原因愿意,实际上可以将其替换为任何其他字符类以及其否定类,例如[\\s\\S]

? *加上这样的正则表达式很重要,因为如果您在代码的后面有另一个<x:xmpmeta></x:xmpmeta>块,则单个匹配将从第一个匹配开始,继续到结束<x:xmpmeta></x:xmpmeta>标记,抓住它们之间的所有内容,并仅在</x:xmpmeta>的最后一个实例处停止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM