我正在处理文本。我想在每一行的大写字母之间加一个点,除了以单词开头的行 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])
您可以使用 SKIP
和 F
使以 name
开头的行失败。请参阅演示。替换为 。
关于ruby - 在某些行的字母之间插入符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32694711/