AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / 问题

Perguntas[regex](computer)

Martin Hope
Kevin Davis
Asked: 2025-01-09 05:51:35 +0800 CST

Como usar o macOS find com um padrão regex?

  • 8

Estou tentando portar um script de uma caixa Ubuntu Linux para um laptop macOS e estou com dificuldades para findconfigurar meu regex corretamente.

Em um diretório, tenho os seguintes arquivos.

/Users/kevin/Documents/Audio/arn/2400/Report2400.clip.mp3
/Users/kevin/Documents/Audio/arn/2400/Report2400.clip1.mp3
/Users/kevin/Documents/Audio/arn/2400/Report2400.clip2.mp3
/Users/kevin/Documents/Audio/arn/2400/Report2400.clip3.mp3
/Users/kevin/Documents/Audio/arn/2400/Report2400.clip4.mp3
/Users/kevin/Documents/Audio/arn/2400/Report2400.clip5.mp3
/Users/kevin/Documents/Audio/arn/2400/Report2400.clip6.mp3
/Users/kevin/Documents/Audio/arn/2400/Report2400.clip7.mp3
/Users/kevin/Documents/Audio/arn/2400/Report2400.clip8.mp3

executando este comando:

find . -regex 'Report2400\.clip[0-9]+\.mp3'

Espero receber 8 arquivos, os 8 com um número depois de "clip", mas nada é retornado.

O que estou perdendo? Sei que é básico, mas estou perto de me internar em um hospital psiquiátrico.

regex
  • 1 respostas
  • 251 Views
Martin Hope
Zsar
Asked: 2025-01-04 00:33:28 +0800 CST

Como o GNU Awk corresponde expressões com grupos de captura?

  • 8

Estou testando isso em um sistema Debian 10 bem antigo usando

GNU Awk 4.2.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.1.2)

em

GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu)

Ambos os comandos awke gawkchamam esta mesma versão do GNU Awk.

Usando essas respostas [1] [2] [3] Estou tentando escrever um script que detecta conflitos de mesclagem gettext emitidos por msgcat.

Entrada de teste de texto simples, referida abaixo como merged_file.po:

"#-#-#-#-#  de.po (Application Library)  #-#-#-#-#\n"
"#-#-#-#-#  de.po (Middleware Library)  #-#-#-#-#\n"
"#-#-#-#-#  de.po  #-#-#-#-#\n"

Escolhi awk em vez de grep e sed para pular um cabeçalho usando NR > <line number>. Como isso funciona sem problemas, omito aqui por brevidade.

Sintaxe da linha:

  1. "#-#-#-#-#
  2. nome do arquivo de origem
  3. (Project-Id-Version) se definido no arquivo de origem
  4. #-#-#-#-#\n"

Expressão regular construída usando RegExr e validada em todos os sabores suportados pelo regex101 : #-#-#-#-#\s+\S+\s+(?:\(([^()]+)\)\s+)?#-#-#-#-#
(Observe que isso pressupõe que o nome do arquivo não contenha espaços em branco - por enquanto, não me importo.)

O efeito pretendido é duplo:

  1. encontre todas as ocorrências no arquivo .po de saída para emitir uma mensagem de erro
  2. capture o nome da biblioteca no grupo de captura 1 para tornar a mensagem de erro mais fácil de ler (especialmente para pessoas não muito familiarizadas com gettext)

Estas são as invocações que tentei:

  • A linha de base de trabalho awk '/#-#-#-#-#\s+\S+\s+(?:\(([^()]+)\)\s+)?/ { print NR, $0 }' merged_file.poencontra todas as ocorrências e imprime a linha inteira.
  • awk '/#-#-#-#-#\s+\S+\s+(?:\(([^()]+)\)\s+)?#/ { print NR, $0 }' merged_file.podescarta todas as ocorrências com Project-Id-Version
  • awk 'match($0, /#-#-#-#-#\s+\S+\s+(?:\(([^()]+)\)\s+)?/, library_name) { print NR, "from library \047"library_name[1]"\047" }' merged_file.poimprime a string vazia em vez de<Project-Id-Version>
    • library_name[0]contém a linha até o grupo não-capturador, então aparentemente matchnão emite grupos de captura - se emitisse, library_name[0]conteria a linha inteira.
  • awk '/#-#-#-#-#\s+\S+\s+(?:\(([^()]+)\)\s+)?/ { library_name = gensub(/#-#-#-#-#\s+\S+\s+(?:\(([^()]+)\)\s+)?/, "\\1", "g"); print NR, "from library \047"library_name"\047" }' merged_file.poimpressões "(<Project-Id-Version>) #-#-#-#-#\n"em vez de<Project-Id-Version>
    • \\0na verdade contém a linha inteira.
    • \\2contém a mesma string que \\1though. (esperado: vazio)

O suporte a RegEx em ferramentas relacionadas, como grep ou sed, costuma ser surpreendentemente vestigial, então, em vez de apenas perguntar por que minhas invocações específicas não funcionam, prefiro perguntar de forma mais geral:

Como a correspondência de expressões regulares do GNU Awks difere da "norma"?

Respostas X/Y (definitivamente) válidas:

  • Estou usando uma versão muito antiga. (Se sim: qual delas eu preciso no mínimo?)
  • Sou cego e meu RegEx está quebrado. (Se sim: como?)
  • A culpa é do Bash e eu preciso de algumas fugas arcanas. (Se sim: quais e por quê?)
  • Baeldung está errado desta vez e, afinal, há uma solução muito mais fácil que não seja usar Awk. (Se sim: qual?)
    • Para que eu não sofra o mesmo problema novamente no futuro, eu gostaria de receber este em adição a , não em vez de uma resposta à pergunta em si. Eu realmente gostaria de entender melhor o que posso esperar do Awk e o que não posso.
regex
  • 1 respostas
  • 59 Views
Martin Hope
Rbvys Punka
Asked: 2024-07-10 18:50:24 +0800 CST

Padrão Regex para encontrar todas as correspondências em string com condições

  • 5

Atualmente estou preso com um problema de regex. Eu tenho uma string:

Take dog, dog, dog, cat, dog;
Dont dog, dog, cat, dog;

Como eu combinaria todos os "cachorros" e pularia "gatos" com o mecanismo regex pcre2. A saída que eu quero é:

dog, dog, dog, dog;

Isso seria retirado da primeira linha, pois começa com "Take", que é estático. Não posso usar nenhum \s* no retrocesso, porque isso não suporta retrocesso infinito.

A regex será usada em outra ferramenta, portanto somente regex pura é permitida (sem script).

regex
  • 1 respostas
  • 21 Views
Martin Hope
Shahid
Asked: 2024-06-24 22:08:03 +0800 CST

Insira um caractere antes de um determinado conjunto de palavras usando Regex

  • 5

Quero usar GREP/Regex no Adobe InDesign. A seguir estão os dados de amostra:

Rato: um mamífero. Camelo: animal que vive no deserto. Um avião: uma máquina que voa. A água barrenta: água cheia de lama e sujeira. Também água suja. Uma palavra de quatro letras: Uma palavra que contém quatro letras. Teste: uma forma de provar seu valor.

Quero colocar um pipe "|" caractere ou um caractere Unicode de minha escolha, imediatamente antes das palavras marcadas em negrito.

por exemplo: |Rato: a descrição do rato. |Camelo: descrição do camelo. |Um Avião: descrição de um avião. |A água lamacenta: descrição.... e assim por diante.

Como posso conseguir isso usando Regex/Grep no Adobe InDesign.

regex
  • 1 respostas
  • 43 Views
Martin Hope
pmor
Asked: 2024-05-08 21:28:08 +0800 CST

Como extrair um texto entre dois padrões (potencialmente contendo lookbehind flutuante) com apenas uma invocação?

  • 5

Estou tentando combinar qualquer caractere (exceto caracteres de quebra de linha) entre xxx<1+ whitespaces>"e whitespace.

O formato da string de entrada é o seguinte:

xxx<1+ whitespaces>"yyy<1+ whitespaces>zzz"

Eu tentei usar o seguinte PCRE:

$ echo 'xxx  "yyy zzz"' | grep -Po '(?<=\xxx\s+").*?(?=\s)'
grep: lookbehind assertion is not fixed length

No entanto, como podemos ver, o PCRE não suporta lookbehind flutuante porque pode causar grandes problemas de desempenho .

Aqui está a solução alternativa:

$ echo 'xxx  "yyy zzz"' | grep xxx | grep -Po '(?<=").*?(?=\s)'
yyy

Aqui vemos que funciona, porém, grepé invocado duas vezes, o que pode ser considerado abaixo do ideal.

É possível obter o mesmo resultado, mas com apenas uma grepinvocação?

Se não, então é possível obter o mesmo resultado, mas com apenas uma <toolname>(talvez awk) invocação?

regex
  • 1 respostas
  • 34 Views
Martin Hope
nexdev
Asked: 2024-04-02 11:05:08 +0800 CST

Regex Fail2Ban personalizado não funciona conforme o esperado

  • 4

Usando o filtro regex abaixo:

[Definition]
failregex = ^<HOST>.*Priority: 0
ignoreregex =

Fail2Ban não detecta nenhuma das entradas de log abaixo.

Mon Apr  1 21:11:29 2024 [**] [1:1000002:1] SSH attempt [**] [Priority: 0] {TCP} 192.x.x.x:58867 -> 192.168.x.x:22
Mon Apr  1 21:11:29 2024 [**] [1:1000002:1] SSH attempt [**] [Priority: 0] {TCP} 192.x.x.x:58914 -> 192.168.x.x:22 

Mas esse mesmo filtro regex acima detecta com precisão as linhas de log abaixo no Fail2Ban e a única diferença nas entradas de log é o formato da data.

03/26-10:57:44.146011  [**] [1:1000002:1] SSH attempt [**] [Priority: 0] {TCP} 192.x.x.x:58867 -> 192.168.x.x:22
03/26-11:23:52.317989  [**] [1:1000002:1] SSH attempt [**] [Priority: 0] {TCP} 192.x.x.x:58914 -> 192.168.x.x:22

Por favor, preciso de ajuda urgente para fazer esse filtro regex funcionar, pois é para o meu trabalho de projeto e meu cronograma é muito limitado.

regex
  • 1 respostas
  • 31 Views
Martin Hope
Rob
Asked: 2024-03-11 04:11:44 +0800 CST

Substituição RegEx no NotePad++

  • 6

Preciso substituir muitas linhas diferentes em um arquivo html onde as linhas se parecem com isto:

<span lang="en-ca">random string</span>

com apenas

random string

Por exemplo

my<span lang="en-ca"> dog</span> likes<span lang="en-ca"> ice cream</span>.

seria atualizado para ser

my dog likes ice cream.

Eu descobri que posso usar

<span lang="en-ca">.*</span>

para corresponder ao padrão geral no parâmetro find, mas não ao que usar no parâmetro replace.

Se isso pode ser feito, como assim?

Nota: não posso simplesmente substituir todos os

<span lang="en-ca">

e

</span>

separadamente, pois nem todos

</span>

está emparelhado com um

<span lang="en-ca">

regex
  • 1 respostas
  • 14 Views
Martin Hope
Vegetable New Man
Asked: 2024-01-27 11:05:00 +0800 CST

Como combinar strings idênticas adjacentes arbitrárias?

  • 4

Então, tenho algumas strings repetidas em meus dados. Possuem um padrão que se repetem duas vezes, e as repetições são adjacentes, sem espaço entre elas. Eles podem ter comprimentos arbitrários (dentro de uma linha) e podem conter letras, números e espaços. Como uso expressões regulares para corresponder a essas strings? Obrigado.

Exemplos do que desejo combinar:

FooFoo
Bar 1Bar 1
X1 Y2 Z3X1 Y2 Z3
regex
  • 1 respostas
  • 25 Views
Martin Hope
Jeff Taylor
Asked: 2023-11-19 10:31:53 +0800 CST

RegEx para encontrar TEXTO mais até 6 números

  • 6

[Usando o Bloco de Notas **]

Buscando um RegEx para encontrar todas as linhas a seguir que contenham a palavra "SEQ", um espaço e qualquer lugar de 3 a 6 dígitos:

SEQ 123
SEQ 1234
SEQ 12345
SEQ 123456

Eu tentei um padrão como:

SEQ \d\d\d

..mas vou perder os dígitos que contêm o espaço reservado 4,5,6.

Além disso, também preciso não incluir nenhum espaço em branco nessa pesquisa de 3 a 6 caracteres. Às vezes, uma linha se parece com esta:

SEQ 456 13

Eu não gostaria de selecionar nenhum número além do número "6", neste caso. Tentei o seguinte depois de consultar o link do Tutorial RegEx:

SEQ \d{3,6}/\s/g

... mas isso está errado.

regex
  • 1 respostas
  • 79 Views
Martin Hope
Mike
Asked: 2023-10-13 17:05:47 +0800 CST

Regex para encontrar mais de uma ocorrência no GrepWin

  • 5

Quero encontrar mais de uma ocorrência da tag h1em vários arquivos.

A regex a seguir traz arquivos que possuem mais de 2 vezes, o que está funcionando muito bem:

/(h1.*){2}/

Porém, e se eu quiser encontrar 2 ou mais ocorrências? (No GrepWin mostra 1 Match, mas o que fazer quando preciso ver quantas partidas a mais do que apenas 1?)

Eu tentei algo como /(h1.*){2+}/, /(h1.*){2}+/ou /(h1.*){2,}/, mas eles não estão funcionando.

Estou usando o GrepWin 2.0.15.

Ou você sugere alguma outra ferramenta do Windows para mostrar isso?

regex
  • 1 respostas
  • 20 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve