Je veux traiter une chaîne, dans laquelle je veux trouver plusieurs chaînes, je suis en train de faire quelques surligneur dans le texte html en Java ..
Exemple:
phrases Trouvez et processus table, row, primary key
dans Each table row contains a primary key column
Le texte est texte html avec des balises comme <b>,<img..>...
s'il y a une balise ignorable dans le milieu de la phrase pour ex. primary <b>key</b>
(balise ignorable est l'étiquette qui n'interrompt pas le texte signifiant comme <b>
ou <i>
, d'autre part l'étiquette comme <div>
interrompt le sens du texte) la phrase peut être remplacée.
Si une phrase est une sous-phrase d'une autre phrase, la plus longue a une priorité plus élevée. par ex. la recherche de table row
et row contains
dans le texte mentionné le deuxième devrait être proccesedLe meilleur moyen de trouver plusieurs phrases dans la chaîne?
Ma première était pseudocode somethin comme ceci:
for (each phrase)
while(tex.hasNext(phrase)) do
processPhraseInText(text,phrase)
end-while
end-for
Il travaillait, mais le texte a été traversé phrases.count() fois Je cherche un moyen plus rapide de traiter tous les prases à la fois
Je veux essayer l'expression régulière et pattern-matcher à utiliser dans cela.
je suis venu avec deux façons, 1. créer une expression régulière pour toutes les phrases qui cherchent en quelque sorte comme ceci: regex1|regex2|..|regexN
ou 2. de créer pour chaque phrase une expression rationnelle (et un objet matcher)
ce pourrait être le meilleur moyen? ou existe-t-il une manière totalement différente ou une bibliothèque existante pour ceci? n'est pas la deuxième voie avec de nombreux allumeurs la même chose que la solution que j'ai déjà?
Merci, vous me assuré :) pourriez-vous me dire, si une aproche matcher sera plus rapide en général que la sollution je l'ai déjà? J'utilise maintenant indexOf pour chaque phrase, le pseudocode simple est posté, je sais que ce n'est pas beaucoup – Zavael
Vous devez profiler si c'est à propos de la performance. Je pense que j'ai lu quelque part que les alternatives dans RegEx sont assez lentes, mais je ne suis pas un gourou RegEx. – atamanroman