我正在使用WinGrep和Notepad ++(Windows)以及其他一些使用Regex的软件。 我也一直试图用这个网站解决它: - http://www.regexlab.com/wild2regex
我正在使用的文本示例如下: -
newmtl models\cat1\item1
illum 1
Kd 1 1 1
map_Kd models\cat1\item1.dds
newmtl models\cat1\item2
illum 1
Kd 1 1 1
map_Kd models\cat1\item2.dds
newmtl models\cat1\item3
illum 1
Kd 1 1 1
map_Kd models\cat1\item3.dds
我想将标题行“newmtl”的反斜杠更改为正斜杠,而不会影响较低的“map_Kd”行。 “models cat#item#”可以是任何东西,这些都是带有任何字母或数字的通配符,可能带有下划线和感叹号。 这对我来说真的很难,因为它不仅涉及返回多个通配符,还涉及使用特殊字符。
任何帮助都将深表感谢! :)
答案 0 :(得分:2)
看起来很简单。在Notepad ++中,只需运行
即可找到:(newmtl .+?)\\(.+?)\\(.+?)
替换为:$1/$2/$3
答案 1 :(得分:1)
如果使用NP ++,这应该有效。
查找(?m)(?:^\h*newmtl|\G(?!^))[^\\\r\n]*\K\\
替换/
http://rubular.com/r/IG0yMflzIa
可读版本
(?m) # Multi-line mode
(?: # ------------
^ \h* # BOL and optional horizontal whitespace
newmtl
| # or,
\G # Anchor, start this match where last left off
(?! ^ ) # Except if its BOL
) # ------------
[^\\\r\n]* # Anything but \ or CRLF, stay on this line
\K # Ignore all that matched up to here
\\ # The only thing that is left, will be replaced