fn parse_quoted_string(input: &str) -> IResult<&str, String, RuleParseError<&str>> {
    let escaped_parser = escaped_transform(none_of("\\\""), '\\', one_of("\"\\;"));
    let empty = map(tag(""), |s: &str| s.to_string());
    let escaped_or_empty = alt((escaped_parser, empty));
    delimited(tag("\""), escaped_or_empty, tag("\""))(input)
}
/// Parse a quote string as often seen in Suricata rules.
///
/// This handles escaped quotes and semicolons (however semicolons do not need
/// to be escaped like most parsers enforce).
///
/// The input string must start with a quote and will parse up to the next
/// unescaped quote.
///
/// The return value is a String with escapes removed and no leading or trailing
/// double quotes.
Parse a quote string as often seen in Suricata rules.
This handles escaped quotes and semicolons (however semicolons do not need
to be escaped like most parsers enforce).

The input string must start with a quote and will parse up to the next
unescaped quote.

The return value is a String with escapes removed and no leading or trailing
double quotes.
Parse a quote string as often seen in Suricata rules . This handles escaped quotes and semicolons ( however semicolons do not need to be escaped like most parsers enforce ) . The input string must start with a quote and will parse up to the next unescaped quote . The return value is a String with escapes removed and no leading or trailing double quotes .
fn parse_quoted_string(input: &str) -> IResult<&str, String, RuleParseError<&str>> {
    let escaped_parser = escaped_transform(none_of("\\\""), '\\', one_of("\"\\;"));
    let empty = map(tag(""), |s: &str| s.to_string());
    let escaped_or_empty = alt((escaped_parser, empty));
    delimited(tag("\""), escaped_or_empty, tag("\""))(input)
}
fn parse_quoted_string ( input : & str ) -> IResult < & str , String , RuleParseError < & str > > { let escaped_parser = escaped_transform ( none_of ( " \\ \" " ) , '\\' , one_of ( " \" \\ " ) ) ; let empty = map ( tag ( " " ) , | s : & str | s . to_string ( ) ) ; let escaped_or_empty = alt ( ( escaped_parser , empty ) ) ; delimited ( tag ( " \" " ) , escaped_or_empty , tag ( " \" " ) ) ( input ) }
Parse a quote string as often seen in Suricata rules.
Parse a quote string as often seen in Suricata rules .
input
&str