Maison  >  Article  >  interface Web  >  Compréhension approfondie de l'analyse des classes prédéfinies et des limites des expressions régulières JS

Compréhension approfondie de l'analyse des classes prédéfinies et des limites des expressions régulières JS

不言
不言original
2018-07-11 09:37:451868parcourir

Cet article présente principalement l'analyse des classes et des limites prédéfinies pour une compréhension approfondie des expressions régulières JS. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

. Classes définies préliminaires

Les expressions régulières fournissent des classes prédéfinies pour correspondre aux classes de caractères courantes

字符 等价类 含义
. [^rn] 除了回车符和换行符以外的所有字符
d [0-9] 数字字符
D [^0-9] 非数字字符
s [tnx0Bfr] 空白符
S [^tnx0Bfr] 非空白符
w [a-zA-Z_0-9] 单词字符(字母、数字、下划线)
W [^a-zA-Z_0-9] 非单词字符

Utilisez des classes prédéfinies pour faire correspondre rapidement des cibles, telles que : pour faire correspondre un ab+numéro+n'importe quel caractère, utilisez Les classes de caractères et les classes de plage nécessitent l'écriture de beaucoup de code, mais l'utilisation de classes prédéfinies ne nécessite que l'écriture :

/ab\d/

Boundary

Les expressions régulières fournissent également plusieurs caractères de correspondance de limites couramment utilisés

字符 含义
^ 以xxx开始
$ 以xxx结束
b 单词边界
B 非单词边界

Les limites sont souvent utiles lorsque nous voulons uniquement faire correspondre une partie des mots d'un paragraphe plutôt que les lettres des mots

Les limites des mots par rapport aux limites des non-mots

Parfois , je veux faire correspondre le mot is dans une phrase, mais pas la lettre is dans le mot. À l'heure actuelle, l'utilisation de limites de mots peut facilement résoudre ce problème :

let text = 'This is a boy'

let reg1 = /is/g

let reg2 = /\bis\b/g

text.replace(reg1, 'IS')    // 没有使用单词边界\b区分,结果为:ThIS IS a boy

text.replace(reg2, 'IS')    // 使用了单词边界进行区分,结果为:This IS a boy

Et quand je veux juste faire correspondre. Que devrions-nous faire quand cela se termine par est ? À ce stade, vous pouvez mélanger judicieusement les limites de mots et les limites de non-mots :

let text = 'This is a boy'

let reg3 = /\Bis\b/g

text.replace(reg3, 'IS')    // ThIS is a boy

^ et $ - le début et la fin de

sont souvent utilisés. Nous voudrons faire correspondre le. caractères de début ou de fin, utiliser ^ et $ peuvent parfaitement résoudre ce problème :

let text = '@123@abc@'

let reg1 = /@/g

text2.replace(reg1, 'Q')    // 没有使用^和$,匹配了所有的@,结果为:Q123QabcQ

let reg2 = /^@/g

text.replace(reg2, 'Q')     // 使用^匹配开头的@,结果为:Q123@abc@

let reg3 = /@$/g

text.replace(reg3, 'Q')     // 使用$匹配结尾的@,结果为:@123@abcQ

conseils : En utilisation réelle, ^ doit être écrit devant l'élément correspondant, tandis que $ doit être déchargé après l'élément correspondant

Dans le cas de plusieurs lignes, utilisez ^ et $

Dans le cas de plusieurs lignes, utilisez m pour saisir le multi-ligne mode pour faire correspondre les caractères correspondants de début et de fin de chaque ligne :

let text = '@123\n@456\n@789'

let reg1 = /^@\d/g

text.replace(reg1, 'Q')      
/*
    由于换行实际上只是一个换行符字符,在正常模式下,依然看做一段字符
    结果为:
    Q23
    @456
    @789
*/

let reg2 = /^@\d/gm

text.replace(reg2, 'Q')
/*
    添加了m进入多行模式:
    结果为:
    Q23
    Q56
    Q89
*/

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention. au site Web PHP chinois !

Recommandations associées :

Compréhension approfondie de l'analyse des classes de plage des expressions régulières JS

Compréhension approfondie des expressions régulières JS Analyse des métacaractères et des classes de caractères

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn