Giter Club home page Giter Club logo

Comments (3)

BurntSushi avatar BurntSushi commented on August 22, 2024 2

Yes, indeed, that LGTM. And yes, str::Chars::last is a O(1) operation.

Also, if you're searching for a small number of strings, you could also just use a regex. Although Aho-Corasick will probably be faster. Hard to say.

I'm happy to help with other text search questions you might have. In the future though, it would be much appreciate if you could post your full program. It's hard to help without that.

I'll close this now since it seems like you have an answer!

from aho-corasick.

BurntSushi avatar BurntSushi commented on August 22, 2024

Why did you close this issue? If you found a solution, please share it. :)

from aho-corasick.

kiminuo avatar kiminuo commented on August 22, 2024

My knowledge of Rust is rather limited so the solution may not be great. Anyway, with help of Rust community, I've come up with:

const DELIMITERS: [char; 17] = [' ', '?', '!', '.', '*', ',', ';', ':', '\n', '\r', '(', ')', '„', '“', '<', '>', '\u{c2a0}' /* non-breaking space */ ];

// The idea is to get str slice up to first matching character (i.e. `start`) and take last character. They say that the last character is not O(n) as one may expect but rather O(1) as there is some specialized code in Rust, so it should be fast.
let to_replace = DELIMITERS.contains(&(&text[0..*start]).chars().last().unwrap());

(the code is simplified to test only character before match)

from aho-corasick.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.