注意:我在改变建议的解决方案的情况下使用JavaScript。
查看多个文件并更改属性/参数(如“count”)时(例如count
,register.count
,function(count)
,getCount
,{{1}我遇到了一个改变“折扣”,“重新计票”或“遭遇”等字眼的问题。
我意识到,对于我的小用例*,可以通过使用简单的启发式方法来避免此错误 - 查找前缀为“count”的已知字符分组并将其从替换中排除。
问题
有没有办法使用正则表达式查找所有实例 “count”但忽略替换,如果找到已知的字符前缀分组?
只是为了澄清*
我知道如果你试图在一个大的未知搜索空间中对“count”之外的其他单词进行概括,那么我的“前缀启发式”会崩溃,但现在就足够了。
答案 0 :(得分:0)
你可以这样处理正则表达式:
\b(get)?(count|Count)\b
您应该应用不区分大小写的开关。
\b assert position at a word boundary (^\w|\w$|\W\w|\w\W)
1st Capturing group (get)?
Quantifier: ? Between zero and one time, as many times as possible, giving back as needed [greedy]
Note: A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you're not interested in the data
get matches the characters get literally (case sensitive)
2nd Capturing group (count|Count)
1st Alternative: count
count matches the characters count literally (case sensitive)
2nd Alternative: Count
Count matches the characters Count literally (case sensitive)
\b assert position at a word boundary (^\w|\w$|\W\w|\w\W)
答案 1 :(得分:0)
鉴于javascript缺乏外观,我认为不可能采用排除路线。
无论如何,你的“已知”前缀是允许的,这不是更容易吗?毕竟,你不能列出在其中某处“计数”的每个常规单词。允许使用已知的合法前缀,让\b
处理剩下的事情:
模式:(get|increment)count|\bcount\b //case insensitive
替换:$1FOO