javascript - Javascript 挑战中的正则表达式
问题描述
我有看起来像这样的字符串:
list_test_prod_01
list_test_prod_02
或者另一个例子是
sub_test_prod_feature
sub_test_prod_feature_round_edge
ETC
我想知道是否有一种方法可以使用正则表达式进行搜索和替换操作,该操作将找到字符串中最后出现的下划线字符(如示例所示,这不是固定数字),然后转到单词的结尾并附加另一个字符串。
例如sub_test_prod_feature
变成sub_test_prod_feature_typed
.
在整页文本中可能会多次出现这些所谓的关键字。
希望有人有一个好主意,我在正则表达式和常规搜索方面不是最好的,并且用 indexof、子字符串等替换代码到目前为止在大量文本中还没有故障安全。
谢谢!
解决方案
用JS,试试
str.replace(/(\b[a-z]+(_[a-z]+)+\b)/gi, '$1_typed');
例子:
编辑
如果像 _xyz 这样的字符串也必须被替换,那么正则表达式是(\b[a-z]*(_[a-z]+)+\b)
var result = 'a_b_c d_e f_g_ hij k_l_m,n_o_p_q _xyz'
.replace(/(\b[a-z]+(_[a-z]+)+\b)/gi, '$1_typed');
console.log(result); // "a_b_c_typed d_e_typed f_g_ hij k_l_m_typed,n_o_p_q_typed _xyz"
var result2 = 'a_b_c d_e f_g_ hij k_l_m,n_o_p_q _xyz'
.replace(/(\b[a-z]*(_[a-z]+)+\b)/gi, '$1_typed');
console.log(result2); // "a_b_c_typed d_e_typed f_g_ hij k_l_m_typed,n_o_p_q_typed _xyz_typed"
推荐阅读
- java - 使用带有 Cucumber 的 QAF testrunner 运行程序时出错
- php - MySQL 在插入数据库时将日期设置为 0000-00-00
- firebase - Unity Firebase Analytics 在场景加载时出现 lldb 错误
- here-api - 删除无效标记
- alexa - Alexa 测试调用名称 - 提交失败
- ibm-midrange - SETLL READE 用于前缀文件
- php - Facebook 登录消息:“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”
- c++ - 循环包含错误,模板源文件
- java - Java parallelStream 映射未命中记录
- webpack - NativeScript - Webpack 环境变量不起作用