Chinaunix

标题: 分隔中文和数字(英文)之间添加换行符 [打印本页]

作者: hgx126    时间: 2023-09-19 15:15
标题: 分隔中文和数字(英文)之间添加换行符
有多个文本,内容如下,内容长度不固定,即“B-其它”后面可能还有“C-…”等等

  1. --0-非**1-一代**2-二代**3-临时**A-军官证B-其它
复制代码
拟在中文和数字(英文)之间添加换行符,将"-"替换成空格。处理后文本内容为以下,内容长度不固定,即:

  1. <div>0 非**</div><div>1 一代**</div><div>2 二代**</div><div>3 临时**</div><div>A 军官证</div><div>B 其它</div>
复制代码
求高手相助。

作者: legs    时间: 2023-09-26 14:35
本帖最后由 legs 于 2023-09-26 14:41 编辑
  1. perl -lpe's#(?:--)?([[:alnum:]]+)-([^[:alnum:]]+)#<div>\1 \2</div>#g' file
复制代码

作者: wh7211    时间: 2023-09-26 16:14
本帖最后由 wh7211 于 2023-09-26 16:28 编辑

回复 1# hgx126


  1. cat 1
  2. --0-非**1-一代**2-二代**3-临时**A-军官证B-其它

  3. awk '{sub(/^--/,"");a=gensub(/([0-9a-zA-Z]+)-([^0-9a-zA-Z]+)/,"<div>\\1 \\2</div>","g");print a}' 1
  4. <div>0 非**</div><div>1 一代**</div><div>2 二代**</div><div>3 临时**</div><div>A 军官证</div><div>B 其它</div>
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2