我试图找出一个正则表达式,将一些字符串中包含的单词从“Name1”替换为“N1”,在RUBY中:
Name1_Instance_1 --> N1_Instance_1
Name1_Instance_2 --> N1_Instance_2
但如果字符串末尾包含.xml,则不是这样:
Name1.xml
Name1_Instance.xml
我试过这个:
Name1[\w_]*[^.xml]
但它不排除这种情况
Name1_Instance.xml
答案 0 :(得分:2)
尝试以下几点:
Name(?=\d+)(?!\w*\.xml)
这里我使用了一个前瞻断言((?=\d+)
)来查看一个或多个数字是否跟随Name,然后我使用了一个负前瞻断言((?!\w*\.xml)
)来排除任何以{{结尾的项目1}}。任何变种的前瞻断言都不会消耗任何字符串,也不会在结果中返回前瞻断言的任何部分。
在Ruby中,你可以这样做:
.xml
答案 1 :(得分:1)
答案 2 :(得分:1)
你可以使用看起来像的负向前瞻:
Name1[\w]*(?!\.xml)