Maison > Article > interface Web > Tutoriel de correspondance de position pour le didacticiel d'expression régulière (avec code)
Cette fois, je vous propose un tutoriel de correspondance de position (avec code) pour le tutoriel expression régulière Quelles sont les précautions pour utiliser le tutoriel d'expression régulière pour la correspondance de position. le combat réel Jetons un coup d’œil au cas.
L'exemple de cet article décrit la correspondance de position du didacticiel d'expression régulière. Partagez-le avec tout le monde pour référence, comme suit :
Remarque : Dans tous les exemples, les résultats de correspondance des expressions régulières sont inclus dans le texte source [ et ], quelques exemples seront implémentés en utilisant Java. S'il s'agit de l'utilisation d'expressions régulières dans Java lui-même, cela sera expliqué à l'endroit correspondant. Tous les exemples Java sont testés sous JDK1.6.0_13.
1. Introduction au problème
Si vous souhaitez faire correspondre un certain mot dans un morceau de texte (sans tenir compte du mode multiligne pour l'instant, qui sera présenté plus tard), nous Cela pourrait ressembler à ceci :
Texte : Hier c'est de l'histoire, demain est un mystère, mais aujourd'hui est un cadeau.
Expression régulière : est
Résultat : Hier 【est】 h【est】tory, demain 【est】 un mystère, mais aujourd'hui 【est】 un cadeau.
Analyse : À l'origine, il voulait seulement correspondre au mot is, mais il correspondait aussi au est contenu en d'autres termes . Pour résoudre ce problème, utilisez des délimiteurs de limites, c'est-à-dire utilisez des métacaractères dans les expressions régulières pour indiquer où (ou limite) nous voulons que l'opération de correspondance se produise.
2. Limites de mots
Une limite couramment utilisée est la limite de mot spécifiée par le qualificatif b, qui est utilisé pour faire correspondre le début et la fin d'un mot. Plus précisément, il fait correspondre une position entre un caractère pouvant être utilisé pour former un mot (lettre, chiffre, trait de soulignement, qui est le caractère qui correspond à w) et un caractère qui ne peut pas être utilisé pour former un mot (avec W correspond à des caractères). . Regardons l'exemple précédent :
Texte : Hier c'est de l'histoire, demain est un mystère, mais aujourd'hui est un cadeau.
Expression régulière : bisb
Résultat : Hier 【est】 de l'histoire, demain 【est】 un mystère, mais aujourd'hui 【est】 un cadeau.
Analyse : Dans le texte original, il y a un espace avant et après le mot is, et cela correspond au modèle bisb (l'espace est l'un des caractères utilisés pour séparer les mots). Le mot history contient également is, car il y a deux caractères h et t avant et après, aucun de ces deux caractères ne peut correspondre à b.
Si une limite de mot ne correspond pas, B est utilisé. Par exemple :
Texte : Veuillez saisir l'identifiant à neuf chiffres tel qu'il apparaît sur votre clé d'accès codée en couleur.
Expression régulière : B-B
Résultat : Veuillez saisir l'identifiant 【neuf chiffres】 tel qu'il apparaît sur votre couleur - codé 【clé d'accès】.
Analyse : B-B correspondra à un trait d'union qui n'est pas une limite de mot avant et après. Il n'y a pas d'espaces avant et après le trait d'union à neuf chiffres et dans le mot de passe, ils peuvent donc être mis en correspondance. en code couleur, il y a des espaces avant et après le trait d'union. Il y a des espaces, donc cela ne peut pas correspondre.
3. StringBoundary
La limite du mot peut être utilisée pour faire correspondre les positions liées aux mots (début du mot, fin du mot, mot entier , etc. attendez). Les limites de chaîne ont un objectif similaire, mais sont utilisées pour faire correspondre les positions liées aux chaînes (début de chaîne, fin de chaîne, chaîne entière, etc.). Deux métacaractères sont utilisés pour définir les limites d'une chaîne : l'un est ^ utilisé pour définir le début de la chaîne et l'autre est $ utilisé pour définir la fin de la chaîne.
Par exemple, si vous souhaitez vérifier la légalité d'un document XML, les documents XML légaux commencent tous par :
Texte :
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="ear"> </project>
正则表达式:^\s*<\?xml.*?\?>
结果:
分析:^匹配一个字符串的开头位置,所以^\s*将匹配一个字符串的开头位置和随后的零个或多个空白字符,因为标签前面允许有空格、制表符、换行符等空白字符。
$元字符符的用法除了位置上的差异外,与^用法完全一样。比如,检查一个html页面是否以