Я пытаюсь заменить одно значение даты в тексте ниже.Его не заменяют.Но когда я ищу подходящие группы, он обнаруживается.
</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);
Когда он способен искать группу, то почему он не может заменить это?Может кто-нибудь проверить, что я делаю не так?Я делаю что-то не так вместо групп?
Пожалуйста, поделитесь своими мыслями!
Спасибо