javascript - 在javascript中将字符串分割两次

标签 javascript

我正在尝试将这个原始字符串分解为新行,其中 UPDATE(每个 #1234 的更新应该与新行中的每个 #1234 一起位于新行中,作为示例可以更好地理解:

#1234 23:28:13 sesedsr id 235768 end_log_pos 4347687 CRC32 0xfe136bd2 Query thread_id=1425356 exec_time=0 error_code=0 UPDATE sys_stat SET `sys_updated_by` = 'system', `sys_mod_count` = 19014, `sys_updated_on` = '2019-04-30 06:28:13', `type` = 'warning', `value` = ' running: xyzz' WHERE sys_status.`sys_id` = '2c5d43134f0262cf5210c712' /* nsdkjsnda1, gs:glide.scheduler.worker.0, tx:649346ba4f052cf5210c774 */--#1234 23:28:13 sedsdr id 608695768 end_log_pos 4350401 CRC32 0xcf3a7672 Query thread_id=1425363 exec_time=0 error_code=0 UPDATE sys_trig SET `sys_updated_by` = 'system', `sys_mod_count` = 4263170, `state` = 1, `sys_updated_on` = '2019-04-30 06:28:13' WHERE sys_trigger.`sys_id` = '64a31111f933130017c49d4d19eedeb6' /* ndaassdasdev02_1, gs:glide.scheduler.worker.0, tx:649346ba0899d62cf5210c774 */--#1234 23:28:13 ssder id 608695768 end_log_pos 4357673 CRC32 0x80dd6e55 Query thread_id=1425359 exec_time=0 error_code=0 UPDATE syseve SET `state` = 'resumed.2c9346ba4f9d62cf5210c774', `claimed_by` = 'appdsa32.sedassd.abcd.com:nas1' WHERE (sysevent0004.`process_on` <= '2019-04-30 06:28:13' AND sysevent0004.`state` = 'encore-ready' AND sysevent0004.`queue` = 'flow_engine') /* nsfsdfs1, gs:glide.scheduler.worker.0, tx:649346ba4f05f740899d62cf5210c774 */--#1234 23:28:13 ssader id 608695768 end_log_pos 4358824 CRC32 0xf281abf6 Query thread_id=1425365 exec_time=0 error_code=0 UPDATE syseve SET `state` = 'queued.2c9346ba4f05f740899d62cf5210c774', `claimed_by` = 'apdasda121.sesadasd.sbcd-ffd.com:ndasdasv02_1' WHERE (sysevent0004.`process_on` <= '2019-04-30 06:28:13' AND sysevent0004.`state` = 'ready' AND sysevent0004.`queue` = 'flow_engine') /* nsdfs2_1, gs:glide.scheduler.worker.0, tx:649346ba4f05f5210c774 */--UPDATE sys_trigger SET `log` = 0, `trigger_type` = 1, `sys_mod_count` = 4263171, `sys_updated_on` = '2019-04-30 06:28:13', `error_count` = 0, `priority` = 100, `trigger_class` = 'com.snc.process_flow.engine.PFJob', `job_context` = '#Mon Apr 29 23:28:13 PDT 2019 ', `run_count` = 1421121, `sys_id` = '64a31111f93313edeb6', `sys_updated_by` = 'system', `sys_created_on` = '2018-08-07 11:38:16', `job_id` = '88d87a408f3222037bdeeb5', `repeat` = '1970-01-01 00:00:16', `processing_duration` = 58, `name` = 'Flow Engine Event Handler', `next_action` = '2019-04-30 06:28:24', `state` = 0, `maintenance` = 0, `sys_created_by` = 'guest', `upgrade_safe` = 1, `claimed_by`= NULL WHERE sys_trigger.`sys_id` = '64a349d4d19eedeb6' /* nsadsfd02_1, gs:glide.scheduler.worker.0, tx:649346ba9d62cf5210c774 */

看起来像:

#1234 23:28:13 sdasver id 235768 end_log_pos 4347687 CRC32 0xfe136bd2 Query thread_id=1425356 exec_time=0 error_code=0 

UPDATE sys_stat SET `sys_updated_by` = 'system', `sys_mod_count` = 19014, `sys_updated_on` = '2019-04-30 06:28:13', `type` = 'warning', `value` = ' running: xyzz' WHERE sys_status.`sys_id` = '2c5d43134f0262cf5210c712' /* nsdkjsnda1, gs:glide.scheduler.worker.0, tx:649346ba4f052cf5210c774 */

#1234 23:28:13 sasdar id 608695768 end_log_pos 4350401 CRC32 0xcf3a7672 Query thread_id=1425363 exec_time=0 error_code=0 

UPDATE sys_trig SET `sys_updated_by` = 'system', `sys_mod_count` = 4263170, `state` = 1, `sys_updated_on` = '2019-04-30 06:28:13' WHERE sys_trigger.`sys_id` = '64a31111f93319d4d19eedeb6' /* nasdada02_1, gs:glide.scheduler.workr.0, tx:649346ba0f5210c774 */

#1234 23:28:13 sdaser id 608695768 end_log_pos 4357673 CRC32 0x80dd6e55 Query thread_id=1425359 exec_time=0 error_code=0 

UPDATE syseve SET `state` = 'resumed.2c9346ba4f9d62cf5210c774', `claimed_by` = 'apd032.sasds0.dsadasce-sdas.com:nas1' WHERE (sysevent0004.`process_on` <= '2019-04-30 06:28:13' AND sysevent0004.`state` = 'encore-ready' AND sysevent0004.`queue` = 'flow_engine') /* nsfsdfs1, gs:glide.scheduler.workr.0, tx:649346ba4f05f745210c774 */

#1234 23:28:13 sdaser id 608695768 end_log_pos 4358824 CRC32 0xf281abf6 Query thread_id=1425365 exec_time=0 error_code=0 

UPDATE syseve SET `state` = 'queued.2c9346ba4f05f740899d62cf5210c774', `claimed_by` = 'apsds0asd32.sedasd0.dce-nasdaow.csdsdm:ndasdav02_1' WHERE (sysevent0004.`process_on` <= '2019-04-30 06:28:13' AND sysevent0004.`state` = 'ready' AND sysevent0004.`queue` = 'flow_engine') /* nsdfs2_1, gs:glide.scheduler.workr.0, tx:649346ba4f05f5210c774 */

UPDATE sys_trigger SET `log` = 0, `trigger_type` = 1, `sys_mod_count` = 4263171, `sys_updated_on` = '2019-04-30 06:28:13', `error_count` = 0, `priority` = 100, `trigger_class` = 'com.snc.process_flow.engine.PFJob', `job_context` = '#Mon Apr 29 23:28:13 PDT 2019 ', `run_count` = 1421121, `sys_id` = '64a31111f93313edeb6', `sys_updated_by` = 'system', `sys_created_on` = '2018-08-07 11:38:16', `job_id` = '88d87a408f3222037bdeeb5', `repeat` = '1970-01-01 00:00:16', `processing_duration` = 58, `name` = 'Flow Engine Event Handler', `next_action` = '2019-04-30 06:28:24', `state` = 0, `maintenance` = 0, `sys_created_by` = 'guest', `upgrade_safe` = 1, `claimed_by`= NULL WHERE sys_trigger.`sys_id` = '64a349d4d19eedeb6' /* nsadsfd02_1, gs:glide.scheduler.workr.0, tx:6493asdd62cf5210c774 */

我已经用(“--”)将原始字符串拆分一次并将其分成单独的行。 另外:#1234 -> 可以是动态的 (#abcd)

最佳答案

您可以使用前瞻和交替对#1234UPDATE 进行拆分

(?=#1234)|(?=UPDATE)

let str = "#1234 23:28:13 server id 235768 end_log_pos 4347687 CRC32 0xfe136bd2 Query thread_id=1425356 exec_time=0 error_code=0 UPDATE sys_stat SET `sys_updated_by` = 'system', `sys_mod_count` = 19014, `sys_updated_on` = '2019-04-30 06:28:13', `type` = 'warning', `value` = ' running: xyzz' WHERE sys_status.`sys_id` = '2c5d43134f0262cf5210c712' /* nsdkjsnda1, gs:glide.scheduler.worker.0, tx:649346ba4f052cf5210c774 */--#1234 23:28:13 server id 608695768 end_log_pos 4350401 CRC32 0xcf3a7672 Query thread_id=1425363 exec_time=0 error_code=0 UPDATE sys_trig SET `sys_updated_by` = 'system', `sys_mod_count` = 4263170, `state` = 1, `sys_updated_on` = '2019-04-30 06:28:13' WHERE sys_trigger.`sys_id` = '64a31111f933130017c49d4d19eedeb6' /* nsalabdev02_1, gs:glide.scheduler.worker.0, tx:649346ba0899d62cf5210c774 */--#1234 23:28:13 server id 608695768 end_log_pos 4357673 CRC32 0x80dd6e55 Query thread_id=1425359 exec_time=0 error_code=0 UPDATE syseve SET `state` = 'resumed.2c9346ba4f9d62cf5210c774', `claimed_by` = 'app128032.sea10.service-now.com:nas1' WHERE (sysevent0004.`process_on` <= '2019-04-30 06:28:13' AND sysevent0004.`state` = 'encore-ready' AND sysevent0004.`queue` = 'flow_engine') /* nsfsdfs1, gs:glide.scheduler.worker.0, tx:649346ba4f05f740899d62cf5210c774 */--#1234 23:28:13 server id 608695768 end_log_pos 4358824 CRC32 0xf281abf6 Query thread_id=1425365 exec_time=0 error_code=0 UPDATE syseve SET `state` = 'queued.2c9346ba4f05f740899d62cf5210c774', `claimed_by` = 'app128032.sea10.service-now.com:nsalabdev02_1' WHERE (sysevent0004.`process_on` <= '2019-04-30 06:28:13' AND sysevent0004.`state` = 'ready' AND sysevent0004.`queue` = 'flow_engine') /* nsdfs2_1, gs:glide.scheduler.worker.0, tx:649346ba4f05f5210c774 */--UPDATE sys_trigger SET `log` = 0, `trigger_type` = 1, `sys_mod_count` = 4263171, `sys_updated_on` = '2019-04-30 06:28:13', `error_count` = 0, `priority` = 100, `trigger_class` = 'com.snc.process_flow.engine.PFJob', `job_context` = '#Mon Apr 29 23:28:13 PDT 2019 ', `run_count` = 1421121, `sys_id` = '64a31111f93313edeb6', `sys_updated_by` = 'system', `sys_created_on` = '2018-08-07 11:38:16', `job_id` = '88d87a408f3222037bdeeb5', `repeat` = '1970-01-01 00:00:16', `processing_duration` = 58, `name` = 'Flow Engine Event Handler', `next_action` = '2019-04-30 06:28:24', `state` = 0, `maintenance` = 0, `sys_created_by` = 'guest', `upgrade_safe` = 1, `claimed_by`= NULL WHERE sys_trigger.`sys_id` = '64a349d4d19eedeb6' /* nsadsfd02_1, gs:glide.scheduler.worker.0, tx:649346ba9d62cf5210c774 */"

console.log(str.split(/(?=#1234)|(?=UPDATE)/).filter(Boolean))

关于javascript - 在javascript中将字符串分割两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58466062/

相关文章:

javascript - 使用 javascript 中的 setInterval 函数在控制台中打印未定义的原型(prototype)

用于提交基于多个变量重定向的表单的 JavaScript

javascript - 我们应该使用 v-model 来修改 Vuex store 吗?

javascript - AngularJS 使用 Ng-Repeat 按属性过滤不工作

Javascript 从字符串中解析一个整数

javascript - 拉维尔 : Getting error response from controller but type error on console and response message is not showing on view page

javascript - 使用变量在 Google Drive API 中搜索文件

javascript - 如何激活类 onclick 列表项

javascript - forEach 在 iOS Safari 上不起作用

javascript - jQuery DataTables - 重构代码以删除 'aoColumn' 重复项