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
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/
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
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
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 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
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!