如何使用Notepad++或TCL提取包含指定子串"_Ori"的所有字符串
如何使用Notepad++或TCL提取包含指定子串"_Ori"的所有字符串
嘿,我来帮你搞定这个提取需求!下面分别用Notepad++和TCL两种方式实现,步骤都很清晰:
方法一:使用Notepad++
Notepad++自带的正则查找功能就能轻松搞定,步骤如下:
- 打开你的目标文本文件,按下
Ctrl+F调出查找对话框 - 切换到「查找」标签页,勾选左下角的正则表达式选项(默认设置即可,不用选「. matches newline」)
- 在查找输入框中填入正则表达式:
\b\w*_Ori\b- 简单解释下:
\b代表单词边界,确保我们匹配的是完整的单词;\w*匹配任意数量的字母、数字或下划线;_Ori就是你要找的固定子串
- 简单解释下:
- 点击「查找全部」,此时所有符合条件的字符串会集中显示在对话框底部
- 选中所有结果,右键选择「复制」,粘贴到新文档里就是你需要的列表啦
方法二:使用TCL脚本
如果你需要用代码自动化处理,可以写一段TCL脚本完成提取,示例如下:
# 方式1:直接使用给定的文本内容 set input_text { R_yu_rfe_h2c_PSM_to_LTSV yoc_cu_h2c_PSM hrr_cti_h2c_LhSV '(R_tyoc_cfi_h2c_tsv_Ori * R_lnoc_cfi_h2c_tsv_Scaler)/(oorc_cfi_h2c_psb_Ori * yroc_cfi_h2c_psb_Scaler)' R_eesf_sb_PSM_to_LTSV yosf_sb_PSM madser_sb_LTr '(R_ptysf_sb_tsv_Ori * R_peef_sb_tsv_Scaler)/(piy_sb_psb_Ori * yyf_sb_psb_Scaler)' R_pttf_dfx_PSM_to_LTSV usf_dfx_PSM uiosf_dfx_LTSV '(R_piui_dfx_tsv_Ori * R_pyf_dfx_tsv_Scaler)/(ufsf_dfx_psb_Ori * lksf_dfx_psb_Scaler)' } # 方式2:从文件读取文本(如果你的内容存在文件里,用这段替换上面的input_text) # set file_handle [open "your_input_file.txt" r] # set input_text [read $file_handle] # close $file_handle # 提取所有包含_Ori的单词 set matched_words [regexp -all -inline {\m\w*_Ori\M} $input_text] # 按序号输出结果 puts "提取到的字符串列表:" set index 1 foreach word $matched_words { puts "$index. $word" incr index }
运行这段脚本后,就能得到你想要的带序号的提取结果啦。其中\m和\M是TCL里的单词边界标记,确保我们匹配的是完整的单词,不会把部分字符串误提出来。
备注:内容来源于stack exchange,提问作者krishnaganth gunasegran
相关产品推荐
相关产品推荐

