我正在搜索一个150万行的Premiere Pro项目,搜索与我的某个音频过滤器匹配的任何文本并设置为单声道。
我要搜索的文字以<ChannelType>
标记开头,以<FilterMatchName>
标记结尾。所以它看起来像这样
<ChannelType>0</ChannelType>
<FrameRate>5292000</FrameRate>
</AudioComponent>
<FilterPreset>0</FilterPreset>
<OpaqueData Encoding="base64" Checksum="53060659">AAAAAD8L8lo+AUr+Pac1NjwTmoUAAAAAP0uQDD37nIg9ui6MPjwU5j+AAAA+C/JaAAAAAD8qqqsAAAAAP4AAAD92L8w9py8FAAAAAHNvZnQgY29tcHJlc3Npb24AIiBkZWZhdWx0PSIwIiBzdGVwPSIxIiBtaW49IjAiIG1heD0iMSIvPgoJICA8Zmw=</OpaqueData>
<FilterIndex>-1</FilterIndex>
<FilterMatchName>1094998321 Dynamics1</FilterMatchName>
如果我在Word文档中,我只会做一个查找
<ChannelType>0</ChannelType>*<FilterMatchName>1094998321 Dynamics1</FilterMatchName>
我和Regex很糟糕。我希望有人可以帮助我。我尝试的所有内容要么与任何内容都不匹配,要么匹配文档中的所有内容。我正在使用Notepad ++。
答案 0 :(得分:1)
由于您使用的是Notepad ++,因此您可以访问PCRE
正则表达式。这个将获得<ChannelType>
和</FilterMatchName>
(?s)<ChannelType>.*?</FilterMatchName>
(?s)
允许.
匹配换行符<ChannelType>
后,.*?
懒惰地匹配所有字符...... </FilterMatchName>
。如果您有任何疑问,请与我们联系。 :)
答案 1 :(得分:0)
您使用的是哪种正则表达式(哪种语言/库)?
基本上,您可以在正则表达式中使用.*
代替*
。如果你的文字很长,如果你的重新实现允许,最好使用Reluctant
量词[1]。
这是一个很好的网站,可以比较不同的实现和教程: http://www.regular-expressions.info
[1] http://docs.oracle.com/javase/tutorial/essential/regex/quant.html