好吧,我对正则表达式一无所知,所以如果有人能指导我更好地解决这个问题,那么请一定做好。
我发现一系列文件缺少他们将写入的数据库的特定命名约定。有些可能是dbname1
,dbname2
,dbname3
,abcdbname4
,abcdbname5
,他们都需要在开始时拥有abc
。我想编写一个正则表达式,它会在文件中找到<name>
后不会立即跟随的所有abc
标记,并添加到abc
。我有什么想法可以做到这一点吗?
再次,请原谅我,如果措辞不力/表达的话。我对正则表达式一无所知。
答案 0 :(得分:0)
如果我从评论中理解正确,您会遇到<Name>foo
和<name>foo
(小写n
)的一些实例,并且希望前置abc
对于尚未以foo
开头的所有abc
。
执行此操作的一种方法是查找和替换( Ctrl + h ),选择正则表达式模式,然后输入:
<[Nn]ame>(?!abc)
作为&#34;找到什么&#34;模式,和
<Name>abc
为&#34;替换为&#34;图案。
请注意,这会将所有匹配的n
替换为N
。
如果您想在匹配的实例中维护小写n
,可以找到<([Nn])ame>(?!abc)
,并替换为<\1ame>abc
。
当然,您可能已经完成了两次或三次正常(非正则表达式)查找和替换...首先将<Name>
替换为<Name>abc
,然后替换abcabc
与abc
。