ruby - 在某些行的字母之间插入符号

标签 ruby regex

我正在处理文本。我想在每一行的大写字母之间加一个点,除了以单词开头的行 name .例如:

right VGS
flat DASabcdf
foot
foobar asdfsadf. ASDFSADF
name Lorem ipsum dolor.  ASDF
ASDF

应该变成

right V.G.S
flat D.A.Sabcdf
foot
foobar asdfsadf. A.S.D.F.S.A.D.F
name Lorem ipsum dolor.  ASDF
A.S.D.F

我试过了 line.gsub(/(?=[A-Z])(?<=[A-Z])/, ".") , 但它在所有行的大写字母之间加了一个点。然后我试了line.gsub(/^(?!name)(.*?)(?=[A-Z])([A-Z]*)(.*$)/, '\1\2.split('').join('.')\3')但它说:

right VGS.split('').join('')
flat DAS.split('').join('')abcdf
foot
foobar asdfsadf. ASDFSADF.split('').join('')
name Lorem ipsum dolor.  ASDF
ASDF.split('').join('')

最佳答案

^name\b.*( *SKIP)( *F)|(?<=[A-Z])(?=[A-Z])

您可以使用 SKIPF 使以 name 开头的行失败。请参阅演示。替换为

https://regex101.com/r/vV1wW6/27

关于ruby - 在某些行的字母之间插入符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32694711/

相关文章:

java - String 中的 4 个子字符串

regex - 从 map 中检索散列键

用于删除特殊字符的正则表达式。无法摆脱尾随省略号

ruby-on-rails - 如何从 rest api 返回 pdf 文件?

ruby-on-rails - 当方法存在时,Rails 在循环中出现 NoMethodError

ruby - 在 JRuby 中将 bloc 转换为 lambda

java - 以点为分隔符拆分字符串

python - re.findall 的问题(重复)

Ruby 如何仅在对象不为 nil 时调用方法

ruby-on-rails - 如何将字符串添加到哈希中