Expresión regular de patrón de números seguidos de un carácter

Estoy tratando de obtener la Expresión de la derecha para el siguiente escenario, pero tiene algunos problemas. A continuación está el escenario.

Mi cadena se parece a esto:

"The office timing (h) is from 8h to 18h."

De la cadena necesito "8h" y "18h".

Hasta ahora he hecho esto "[0-9]*[h]". Pero esto me da "h", "8h" y "18h".

Las ideas de los expertos por ahí?

InformationsquelleAutor Naveen | 2012-05-28

5 Kommentare

  1. -2

    Incluso esto le ayudará a : [0-9][0-9]*h que es equivalente a [0-9]+h

    • [0-9][0-9]*h no es equivalente a [0-9]+h. Como @Li0liQ señaló [0-9][0-9]*h es equivalente a [0-9]{1,2}h.
  2. 9

    Reemplazar [0-9]*[h] con [0-9]+h

    La + significa que debe aparecer una vez o más. Y no hay ningún uso en el horquillado de la h, porque se encuentra solo.

    También puede utilizar \d+h para mayor legibilidad (\d coincide con cualquier dígito).

  3. 2

    * significa cero o más repeticiones en Regex. Especificar el corret número de repeticiones en lugar.

    "\b\d{1,2}h\b"

    \d representa un dígito.

    {1,2} medio de una o dos repeticiones (de \d).

    \b significado comienzo o final de palabra (porque no la letra o dígito debe preceder o seguir el patrón).

    No encontrará "h" o "123h" o "18hertz".

  4. 1

    reemplazar la * a + (signo más), es decir,

    [0-9]+[h]

    En regex hablar:

    * significa que coincida con cualquier número de las anteriores fichas (INCLUYENDO el cero)

    + significa que coincida con cualquier número de la anterior tokens (AL MENOS UNO)

    También, los corchetes alrededor de la h son redundantes, ya que sólo la coincidencia de un solo carácter.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea