Como adicionar o número na string de acordo com maiúsculas ou minúsculas?

Wang

As fórmulas químicas (strings) são sempre escritas em um formato específico, um elemento químico seguido por um número, por exemplo, Oxigênio O2, dióxido de carbono CO2. cloreto sólido NaCl

Se um elemento pode ser apresentado com uma letra, esta letra está em maiúsculas, por exemplo, oxigênio Oe carbono C. Alguns elementos são mostrados com 2 letras, e apenas a primeira letra está em maiúscula, por exemplo, sódio Na.

Portanto, o elemento é representado por uma ou duas letras, existem apenas dois casos.

Você pode ver que se o número do elemento for 1, o número 1 não será escrito depois dele.

O que eu quero fazer é adicionar 1 atrás desses elementos.

Meus dados de exemplo são

strings <- c("O2", "CO2", "NaCl")

O que eu quero é:

strings_new <- c("O2", "C1O2", "Na1Cl1")

Na linguagem de programação, existem strings com um formato específico. Uma letra maiúscula ou uma letra maiúscula e uma letra minúscula seguem um número. Se um número atrás de uma letra estiver faltando e esta letra estiver em maiúscula, e a letra atrás dela também estiver em maiúscula, então 1 será inserido após esta letra. Se esta letra estiver em maiúscula, mas a letra atrás dela estiver em minúsculas, 1 será inserido após a letra minúscula.

Muito obrigado por sua ajuda.

Pushpesh Kumar Rajwanshi

Você pode usar esta regex que corresponde a uma letra maiúscula (para C) ou maiúscula opcionalmente seguida por uma minúscula (para apoiar Naou Cl) e não seguida por um dígito, o que significa que precisa ser anexada por1

([A-Z][a-z]?)(?!\d)

E substitua por \11

Demo

Confira esta demonstração de código R,

strings <- c("O2", "CO2", "NaCl")
gsub("([A-Z][a-z]?)(?!\\d)","\\11", strings, perl = TRUE)

Impressões,

[1] "O2"     "C1O2"   "Na1Cl1"

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como encontrar o elemento string na matriz independentemente de maiúsculas ou minúsculas

Python - "não diferencia maiúsculas de minúsculas" em uma string ou "ignora maiúsculas e minúsculas"

Como classificar de acordo com a ordem indicada: minúsculas, maiúsculas, números e símbolos?

Como encontrar documentação perl (offline) - "não diferencia maiúsculas de minúsculas" ou com expressão regular

Como analisar uma string para maiúsculas e minúsculas que não corresponde ao tipo na caixa de terceiros?

Como converter string com combinação de maiúsculas e minúsculas aleatoriamente

Como posso combinar uma pesquisa que não diferencia maiúsculas de minúsculas com uma substituição que diferencia maiúsculas de minúsculas no regex?

Verifique se a string não diferencia maiúsculas de minúsculas na lista

Verifique se a string não diferencia maiúsculas de minúsculas na lista

Como pesquisar com o cypher 2.0 que não diferencia maiúsculas de minúsculas?

Como dividir uma string com letras maiúsculas e minúsculas consecutivas (para obter o número de átomos de uma molécula)?

Sequelizar - não diferencia maiúsculas de minúsculas, como

Como especificar uma regra que não diferencia maiúsculas de minúsculas com reescrever middleware?

Como classificar não diferencia maiúsculas de minúsculas com System.Dynamic.Linq?

String que não diferencia maiúsculas de minúsculas começa com em Python

Verifique se uma string termina com algo, não diferencia maiúsculas de minúsculas?

como alterar certas letras em uma string python para minúsculas ou maiúsculas com indexação

Não existe erro na coluna Django quando é criado um nome de coluna com letras maiúsculas ou maiúsculas

Um filtro de pesquisa Vue JS básico que não diferencia maiúsculas de minúsculas ou apenas em minúsculas na matriz?

Como fazer com que o gráfico de pizza não faça distinção entre maiúsculas e minúsculas

Modelo Django: Meta: como fazer com que a ordenação padrão não diferencia maiúsculas de minúsculas

Como lidar com maiúsculas ou minúsculas no JSR 310?

Como usar correspondência que não diferencia maiúsculas de minúsculas na cláusula MERGE?

como faço para retirar tudo depois de uma certa string [não diferencia maiúsculas de minúsculas]

jq Como filtrar o objeto de matriz não contém chave com maiúsculas e minúsculas?

Estilo de atributo de classe constante de acordo com PEP8: maiúsculas ou minúsculas?

Como verificar se o valor de entrada começa com maiúsculas / ou se tem minúsculas / ou se é tudo maiúsculo no PHP?

Como posso tornar Array.Contains não diferencia maiúsculas de minúsculas em uma matriz de string?

Como analisar strings que não diferenciam maiúsculas de minúsculas com jsr310 DateTimeFormatter?

TOP lista

  1. 1

    Obtendo apenas o número de uma String C #

  2. 2

    como acessar a conexão do banco de dados em visualizações no codeigniter 4

  3. 3

    Como redimensionar tabelas geradas pelo Stargazer no R Markdown?

  4. 4

    recuperar valores em uma linha de dataframes com base no valor em outro

  5. 5

    Firebase Storage Web: como fazer upload de um arquivo

  6. 6

    为什么在使用argc和argv时不会出现分段错误?

  7. 7

    Como agrupar objetos em uma lista em outras listas por atributo usando streams e Java 8?

  8. 8

    Qual é a diferença entre o tamanho do passo e a taxa de aprendizado no aprendizado de máquina?

  9. 9

    Por que definir a variável como uma string vazia não é necessária em meu código?

  10. 10

    Insert a value to hidden input Laravel Blade

  11. 11

    Configure o coletor de arquivos Serilog para usar um arquivo de log por execução do aplicativo

  12. 12

    Como ler arquivos yaml em laravel?

  13. 13

    Série Fibonacci usando programação dinâmica

  14. 14

    Como adicionar elementos a um array multidimensional em PHP?

  15. 15

    How do I set an IronPython ctypes c_char_p pointer to an absolute address that is not a valid memory address to read from?

  16. 16

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  17. 17

    Como faço para que um formulário no Access se torne uma janela pop-up?

  18. 18

    Como anexar um arquivo a um e-mail usando JavaMail

  19. 19

    Adicionar campos de texto dinâmicos por meio da seleção suspensa de componentes?

  20. 20

    如何使用SOM算法进行分类预测

  21. 21

    TypeError não capturado: não é possível atribuir a propriedade somente leitura

quentelabel

Arquivo