заменить группу в регулярных выражениях в Java - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь заменить одно значение даты в тексте ниже.Его не заменяют.Но когда я ищу подходящие группы, он обнаруживается.

                                                       
                                            </div>
                                          </div>
                                        </td>
                                        <td class="x-grid3-col x-grid3-cell x-grid3-td-FilterFieldCalculation " style="width:106px;" tabindex="0">
                                          <div class="x-grid3-cell-inner x-grid3-col-FilterFieldCalculation" unselectable="on" ext:qtip="">
                                             
                                          </div>
                                        </td>
                                        <td class="x-grid3-col x-grid3-cell x-grid3-td-FilterFieldOperator " style="width:106px;" tabindex="0">
                                          <div class="x-grid3-cell-inner x-grid3-col-FilterFieldOperator" unselectable="on" ext:qtip="">
                                            FROM/TO
                                          </div>
                                        </td>
                                        <td class="x-grid3-col x-grid3-cell x-grid3-td-FilterFieldFilterFrom " style="width:142px;" tabindex="0">
                                          <div class="x-grid3-cell-inner x-grid3-col-FilterFieldFilterFrom" unselectable="on" ext:qtip="">
                                            01/10/2017
                                          </div>
                                        </td>
                                        <td class="x-grid3-col x-grid3-cell x-grid3-td-FilterFieldFilterTo " style="width:142px;" tabindex="0">
                                          <div class="x-grid3-cell-inner x-grid3-col-FilterFieldFilterTo" unselectable="on" ext:qtip="">
                                            01/10/2018
                                          </div>
                                        </td>
                                        <td class="x-grid3-col x-grid3-cell x-grid3-td-FilterFieldExpressionLeft " style="width:178px;display:none;" tabindex="0">
                                          <div class="x-grid3-cell-inner x-grid3-col-FilterFieldExpressionLeft" unselectable="on">
                                             
                                          </div>
                                        </td>
                                        <td class="x-grid3-col x-grid3-cell x-grid3-td-FilterFieldExpressionOperator " style="width:118px;display:none;" tabindex="0">
                                          <div class="x-grid3-cell-inner x-grid3-col-FilterFieldExpressionOperator" unselectable="on">
                                             
                                          </div>
                                        </td>
                                        <td class="x-grid3-col x-grid3-cell x-grid3-td-FilterFieldExpressionRight " style="width:178px;display:none;" tabindex="0">
                                          <div class="x-grid3-cell-inner x-grid3-col-FilterFieldExpressionRight" unselectable="on">
                                             
                                          </div>
                                        </td>
                                      </tr>
                                    </tbody>
                                  </table>
                                </div>
                              </div>
                              <a href="#" class="x-grid3-focus" tabindex="-1" id="ext-gen84">
                              </a>
                            </div>
                          </div>
                          <div class="x-grid3-resize-marker" id="ext-gen85">
                             
                          </div>
                          <div class="x-grid3-resize-proxy" id="ext-gen86">
                             
                          </div>
                        </div>
                      </div>
                      <div class="x-panel-bbar" id="ext-gen77" style="width: 4500px;">
                        <div id="ext-comp-1024" class="x-toolbar x-small-editor x-toolbar-layout-ct" style="width: 4500px;">
                          <table cellspacing="0" class="x-toolbar-ct">
                            <tbody>
                              <tr>
                                <td class="x-toolbar-left" align="left">
                                  <table cellspacing="0">
                                    <tbody>
                                      <tr class="x-toolbar-left-row">
                                        <td class="x-toolbar-cell" id="ext-gen89">
                                          <input type="text" size="20" autocomplete="off" id="extQueryWizardConfiguration_FilterFields_bbar_hiddenFirstEl" name="extQueryWizardConfiguration_FilterFields_bbar_hiddenFirstEl" class=" x-form-text x-form-field" style="position: absolute; left: -100000px;"/>
                                        </td>
                                      </tr>
                                    </tbody>
                                  </table>
                                </td>
                                <td class="x-toolbar-right" align="right">
                                  <table cellspacing="0" class="x-toolbar-right-ct">
                                    <tbody>
                                      <tr>
                                        <td>
                                          <table cellspacing="0">
                                            <tbody>
                                              <tr class="x-toolbar-right-row">
                                                <td class="x-toolbar-cell" id="ext-gen90">
                                                  <table id="extId_QueryWizardConfiguration_FilterFields_bbar_btn_AddRow" cellspacing="0" class="x-btn  x-btn-noicon" style="width: auto;">
                                                    <tbody class="x-btn-small x-btn-icon-small-left">
                                                      <tr>
                                                        <td class="x-btn-tl">
                                                          <i>
                                                             
                                                          </i>
                                                        </td>
                                                        <td class="x-btn-tc"/>
                                                        <td class="x-btn-tr">
                                                          <i>
                                                             
                                                          </i>
                                                        </td>
                                                      </tr>
                                                      <tr>
                                                        <td class="x-btn-ml">
                                                          <i>
                                                             
                                                          </i>
                                                        </td>
                                                        <td class="x-btn-mc">
                                                          <em class="" unselectable="on">
                                                            <button type="button" id="ext-gen91" class=" x-btn-text">
                                                              Add filter
                                                            </button>
                                                          </em>
                                                        </td>
                                                        <td class="x-btn-mr">
                                                          <i>
                                                             
                                                          </i>
                                                        </td>
                                                      </tr>
                                                      <tr>
                                                        <td class="x-btn-bl">
                                                          <i>
                                                             
                                                          </i>
                                                        </td>
                                                        <td class="x-btn-bc"/>
                                                        <td class="x-btn-br">
                                                          <i>
                                                             
                                                          </i>
                                                        </td>
                                                      </tr>
                                                    </tbody>
                                                  </table>
                                                </td>
                                                <td class="x-toolbar-cell" id="ext-gen92">
                                                  <table id="extId_QueryWizardConfiguration_FilterFields_bbar_btn_DeleteRows" cellspacing="0" class="x-btn  x-btn-noicon" style="width: auto;">
                                                    <tbody class="x-btn-small x-btn-icon-small-left">
                                                      <tr>
                                                        <td class="x-btn-tl">
                                                          <i>
                                                             
                                                          </i>
                                                        </td>

Вот тестовый код, чтобы проверить, существует ли соответствующая группа.

Pattern regex = Pattern.compile("(div class=\\\"x-grid3-cell-inner x-grid3-col-FilterFieldFilterFrom\\\" unselectable=\\\"on\\\" ext:qtip=\\\"\\\">(\\r|\\n)(\\s+))([\\d]{1,2}\\/[\\d]{1,2}\\/[\\d]{4})");
        Matcher regexMatcher = regex.matcher(pageAnchorReport.asXml());
        while (regexMatcher.find()) {
            for (int i = 1; i <= regexMatcher.groupCount(); i++) {

                System.out.println("REGEX:"+i+regexMatcher.group(i));
            }
        } 

Вот как я использую replaceAll в реальном коде

String regex = "(div class=\\\"x-grid3-cell-inner x-grid3-col-FilterFieldFilterFrom\\\" unselectable=\\\"on\\\" ext:qtip=\\\"\\\">(\\r|\\n)\\s+)([\\d]{1,2}\\/[\\d]{1,2}\\/[\\d]{4})";
    HtmlPage pageAnchorReport = htmlAnchorReport.click();
    StringWebResponse response = new StringWebResponse(pageAnchorReport.asXml().replaceAll(regex, "$1$2$301/05/2018"), url);

Когда он способен искать группу, то почему он не может заменить это?Может кто-нибудь проверить, что я делаю не так?Я делаю что-то не так вместо групп?

Пожалуйста, поделитесь своими мыслями!

Спасибо

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