"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo dividir cadenas con delimitadores conservados utilizando Java Lookahead y Lookbehind?

¿Cómo dividir cadenas con delimitadores conservados utilizando Java Lookahead y Lookbehind?

Publicado el 2024-11-08
Navegar:107

How to Split Strings with Delimiters Preserved Using Java Lookahead and Lookbehind?

División de cadenas con delimitadores conservados

Cuando se trabaja con cadenas multilínea delimitadas por un conjunto de delimitadores únicos, puede resultar complicado dividir la cadena preservando al mismo tiempo los propios delimitadores. El método estándar String.split solo separa la cadena según el delimitador especificado, descartando los caracteres delimitadores.

Uso de Lookahead y Lookbehind

El kit de desarrollo de Java (JDK) proporciona una solución utilizando mirar hacia adelante y mirar hacia atrás, que son características de las expresiones regulares que le permiten hacer coincidir y capturar caracteres sin incluirlos en el resultado final. resultado.

Aquí hay un ejemplo que utiliza la búsqueda hacia adelante y hacia atrás:

String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";

String[] splitWithDelimiter = input.split("((?

El patrón:

  • (?
  • (?=;) coincide con un carácter vacío directamente antes de un punto y coma (lookahead).
  • ((?

Salida:

[Text1, ;, DelimiterA, ;, Text2, ;, DelimiterC, ;, Text3, ;, DelimiterB, ;, Text4]

Este resultado conserva los delimitadores junto con el texto, cumpliendo con el requisito de mantener los delimitadores intactos mientras se divide la cadena.

Mejora de la legibilidad

Las expresiones regulares a veces pueden resultar difíciles de leer y comprender. Para mejorar la legibilidad, puede crear una variable con un nombre descriptivo que represente el patrón de expresión regular. Por ejemplo:

static final String WITH_DELIMITER = "((?

Al utilizar marcadores de posición y el formato String.de Java, puede hacer que la expresión regular sea más intuitiva y más fácil de interpretar.

Declaración de liberación Este artículo se reimprime en: 1729746892 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3