Java регулярное выражение справки - PullRequest
0 голосов
/ 21 января 2011

У меня может быть одна строка в следующих двух форматах:

"[HardCOdeText1 (HardCodeText2)].[HardCodeText3].[MatchString] between changeValue1 and changeValue2";
"[MatchString] between changeValue1 and changeValue2";

Я бы хотел сопоставить, если строка имеет выражение "[MatchString] between".И в зависимости от того, с какой строкой я сопоставляюсь, измененный формат значения должен быть одним из следующих: Измененный формат должен быть:

"[HardCOdeText1 (HardCodeText2)].[HardCodeText3].[MatchString] between chamged1 and changed2"; or
"[MatchString] between changed1 and changed2";

Я начал сопоставлять выражение «[MatchString] между», и я застрял натам: Любая помощь приветствуется.

Ответы [ 3 ]

0 голосов
/ 21 января 2011

Используете ли вы "[MatchString] between" в качестве шаблона, не выходя за скобки []?Символы [, ], ., ( и ) являются специальными символами в RegEx.Если вы хотите называть их буквальными символами, вам нужно избегать их в шаблоне.

Ваш вопрос немного неясен.Может быть, если бы вы предоставили конкретные примеры реальной входной строки, которую вы используете, и как вы хотите, чтобы совпадения выглядели?

Я бы также проверил регулярные-выражения.info длядополнительные сведения и учебные пособия, в том числе сведения о синтаксисе и его реализации для Java в RegEx.

0 голосов
/ 21 января 2011

Это будет соответствовать обоим типам приведенных вами примеров строк.

String inputLine;
String outputLine;

String regex1 = "(\\[MatchString\\] between )changeValue1 and";
String regex2 = "(\\[MatchString\\] between )[^ ]+ and";

do {
    inputLine = readTheInput();

    outputLine = inputLine.replaceFirst(regex1, "$1changed1 and");

    writeTheOutput(outputLine);
} while (thereIsStillInput());

Первый regex1 специально ищет changeValue1, в то время как второй regex2 ищет что-нибудь после "между" и предшествующим"и".

Это должно помочь вам начать.

0 голосов
/ 21 января 2011

[и] являются зарезервированными символами в регулярных выражениях, и вам нужно избегать их.Кроме того, вот действительно хороший онлайн тестер регулярных выражений, который использует регулярные выражения java:

http://www.regexplanet.com/simple/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...