RSS-109: Added rule redactBetweenRegexes
This commit is contained in:
parent
c478935b86
commit
b9b3e8c8f5
@ -589,6 +589,31 @@ public class Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ThenAction
|
||||||
|
public void redactBetweenRegexes(@Argument(ArgumentType.STRING) String startPattern,
|
||||||
|
@Argument(ArgumentType.BOOLEAN) boolean startPatternCaseInsensitive,
|
||||||
|
@Argument(ArgumentType.INTEGER) int startGroup,
|
||||||
|
@Argument(ArgumentType.BOOLEAN) boolean includeStart,
|
||||||
|
@Argument(ArgumentType.STRING) String stopPattern,
|
||||||
|
@Argument(ArgumentType.BOOLEAN) boolean stopPatternCaseInsensitive,
|
||||||
|
@Argument(ArgumentType.INTEGER) int stopGroup,
|
||||||
|
@Argument(ArgumentType.BOOLEAN) boolean includeStop,
|
||||||
|
@Argument(ArgumentType.RULE_NUMBER) int ruleNumber,
|
||||||
|
@Argument(ArgumentType.TYPE) String type,
|
||||||
|
@Argument(ArgumentType.STRING) String reason,
|
||||||
|
@Argument(ArgumentType.STRING) String legalBasis,
|
||||||
|
@Argument(ArgumentType.BOOLEAN) boolean skipRemoveEntitiesContainedInLarger,
|
||||||
|
@Argument(ArgumentType.BOOLEAN) boolean sortedResult) {
|
||||||
|
|
||||||
|
String startValue = getFirstRexExMatch(startPattern, startPatternCaseInsensitive, startGroup);
|
||||||
|
String stopValue = getFirstRexExMatch(stopPattern, stopPatternCaseInsensitive, stopGroup);
|
||||||
|
|
||||||
|
if (startValue != null && stopValue != null) {
|
||||||
|
redactBetween(startValue, stopValue, includeStart, includeStop, type, ruleNumber, false, false, reason, legalBasis, true, skipRemoveEntitiesContainedInLarger, sortedResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@ThenAction
|
@ThenAction
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
@ -1123,6 +1148,22 @@ public class Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private String getFirstRexExMatch(String pattern, boolean patternCaseInsensitive, int group) {
|
||||||
|
|
||||||
|
Pattern compiledPattern = Patterns.getCompiledPattern(pattern, patternCaseInsensitive);
|
||||||
|
Matcher matcher = compiledPattern.matcher(searchText);
|
||||||
|
|
||||||
|
while (matcher.find()) {
|
||||||
|
String match = matcher.group(group);
|
||||||
|
if (StringUtils.isNotBlank(match)) {
|
||||||
|
return match;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void redactBetween(String start, String stop, boolean includeStart, boolean includeStop, String asType,
|
private void redactBetween(String start, String stop, boolean includeStart, boolean includeStop, String asType,
|
||||||
int ruleNumber, boolean redactEverywhere, boolean excludeHeadLine, String reason,
|
int ruleNumber, boolean redactEverywhere, boolean excludeHeadLine, String reason,
|
||||||
String legalBasis, boolean redaction, boolean skipRemoveEntitiesContainedInLarger,
|
String legalBasis, boolean redaction, boolean skipRemoveEntitiesContainedInLarger,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user