Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

179
Views
Tome el segundo número y la palabra después de él usando expresiones regulares

tengo una cadena:

 str = "1 - hello world 1234 abc 5678 def"

Quiero tomar 1234 abc de la cadena.

Mi implementación actual str[/\d+\s*\D*$/] solo toma el último número con la palabra.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puedes usar

 str[/\d+\D+(\d+\s*\w+)/, 1] str[/\d+\D+\K\d+\s*\w+/]

Vea esta demostración de expresiones regulares y esta demostración de expresiones regulares #2 .

Aquí, solo se busca la primera coincidencia de expresiones regulares. Detalles :

  • \d+ - uno o más dígitos
  • \D+ - uno o más no dígitos
  • (\d+\s*\w+) - Grupo 1: uno o más dígitos, cero o más espacios en blanco y uno o más caracteres de palabra
  • \K : operador de reinicio de coincidencia que descarta todo el texto coincidente hasta el momento.

NOTA :

  • Si una "palabra" es un fragmento de caracteres que no son espacios en blanco, reemplace \w+ con \S+
  • Si desea admitir valores flotantes (números con partes fraccionarias), deberá reemplazar \d+ con \d*\.?\d+ o \d+(?:\.\d+)? patrones.

Aquí hay una prueba de Ruby :

 str = "1 - hello world 1234 abc 5678 def" puts str[/\d+\D+(\d+\s*\w+)/, 1] # => 1234 abc puts str[/\d+\D+\K\d+\s*\w+/] # => 1234 abc
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!