fixed regex (kms) and added trim
This commit is contained in:
parent
bbfa3d5698
commit
557ada4ee2
1 changed files with 18 additions and 9 deletions
|
|
@ -39,24 +39,33 @@ impl Notice {
|
|||
|
||||
pub fn get_validity_period(&mut self) {
|
||||
let re = Regex::new(
|
||||
r"Gültig ab (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}) bis (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})",
|
||||
r"Gültig ab (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})(?: bis (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}))?(?:<br>|\s)*",
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
if let Some(caps) = re.captures(&self.detail) {
|
||||
let valid_from = caps.get(1).unwrap().as_str();
|
||||
let valid_to = caps.get(1).unwrap().as_str();
|
||||
let format = "%d.%m.%Y %H:%M";
|
||||
|
||||
if let (Ok(start_dt), Ok(end_dt)) = (
|
||||
NaiveDateTime::parse_from_str(valid_from, format),
|
||||
NaiveDateTime::parse_from_str(valid_to, format),
|
||||
) {
|
||||
if let Some(caps) = re.captures(&self.detail) {
|
||||
let valid_from = caps.get(1).unwrap().as_str();
|
||||
if let Ok(start_dt) = NaiveDateTime::parse_from_str(valid_from, format) {
|
||||
self.from = Some(start_dt);
|
||||
}
|
||||
|
||||
if let Some(valid_to_match) = caps.get(2) {
|
||||
let valid_to = valid_to_match.as_str();
|
||||
if let Ok(end_dt) = NaiveDateTime::parse_from_str(valid_to, format) {
|
||||
self.to = Some(end_dt);
|
||||
}
|
||||
self.detail = re.replace(&self.detail, "").to_string();
|
||||
self.trim();
|
||||
} else {
|
||||
self.to = None;
|
||||
}
|
||||
} else {
|
||||
println!("No validity period found in the text.");
|
||||
}
|
||||
}
|
||||
pub fn trim(&mut self) {
|
||||
self.detail = self.detail.replace("<br>", "\n");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue