g significa correspondência global
m significa que múltiplas linhas podem ser combinadas
i significa correspondência sem distinção entre maiúsculas e minúsculas
^ corresponde ao início da string de entrada
$ corresponde ao final da string de entrada
* Corresponde à subexpressão anterior zero ou mais vezes. Equivalente a {0,}.
+ Corresponde à subexpressão anterior uma ou mais vezes. Equivalente a {1,}.
? Corresponde à subexpressão anterior zero ou uma vez. Equivalente a [0,1} quando este caractere é seguido por qualquer outro qualificador (*, +, ?, {n}, {n,}, {n, m}), a correspondência. padrão não é ganancioso. O modo não guloso corresponde ao mínimo possível da string pesquisada, enquanto o modo guloso padrão corresponde ao máximo possível da string pesquisada. Por exemplo, para a string "oooo", 'o+?' corresponderá a um único "o", enquanto 'o+' corresponderá a todos os 'o's.
d corresponde a um caractere numérico.
D corresponde a um caractere não numérico. Equivalente a [^0-9]
w , equivalente a "[A-Za-z0-9_]"
W corresponde a qualquer caractere que não seja de palavra, equivalente a "[^A-Za-z0-9]"
s corresponde a qualquer caractere de espaço em branco, incluindo espaços, tabulações, feeds de formulário, etc. Equivalente a [fnrtv]
S corresponde a qualquer caractere que não seja espaço em branco. Equivalente a [^frntv]
b corresponde a um limite de palavra, que é a posição entre uma palavra e um espaço.
B corresponde aos limites que não são de palavras.
(padrão) corresponde ao padrão e obtém a correspondência. As correspondências obtidas podem ser obtidas a partir da coleção Matches gerada, usando a coleção SubMatches em VBScript ou as propriedades $0…$9 em JScript.
(?:pattern) corresponde ao padrão, mas não obtém o resultado correspondente, o que significa que esta é uma correspondência que não é de aquisição e não é armazenada para uso posterior. Isto é útil ao usar o caractere "ou" (|) para combinar partes de um padrão. Por exemplo, 'industr(?:y|ies) é uma expressão mais curta que 'industry|industries'.
(?=padrão) pesquisa direta, correspondendo à string de pesquisa no início de qualquer padrão de correspondência de string. Esta é uma correspondência sem busca, ou seja, a correspondência não precisa ser buscada para uso posterior. Por exemplo, 'Windows (?=95|98|NT|2000)' corresponde a "Windows" em "Windows 2000", mas não a "Windows" em "Windows 3.1". A pré-busca não consome caracteres, ou seja, após ocorrer uma correspondência, a busca pela próxima correspondência começa imediatamente após a última correspondência, em vez de começar após o caractere que contém a pré-busca.
(?!pattern) Lookahead negativo corresponde à string de pesquisa no início de qualquer string que não corresponda ao padrão. Esta é uma correspondência sem busca, ou seja, a correspondência não precisa ser buscada para uso posterior. Por exemplo, 'Windows (?!95|98|NT|2000)' pode corresponder a "Windows" em "Windows 3.1", mas não a "Windows" em "Windows 2000". A pré-verificação não consome caracteres, ou seja, após ocorrer uma correspondência, a busca pela próxima correspondência começa imediatamente após a última correspondência, em vez de começar
a combinar 2 a 4
códigos de programa
de caracteres chineses após os caracteres que contêm a pré-verificação.
/^[u4e00-u9fa5]{2,4}$/g;
a códigos de programa
de 6 a 18 caracteres (letras, números, sublinhados)
/^w{6,18}$/;
código do programa
/^[A-Za-z0-9_]$/;
Corresponder
ao código do programa
de tag HTML
/<[^>]*>|</[^>]*>/gm;
código do programa
/</?[^>]+>/gm;
código do programa
com espaços esquerdo e direito
/(^s*)|(s*$)/g;
Ordem de prioridade (da mais alta para a mais baixa)
caractere de escape
(),(?:),(?=),[] colchetes e colchetes
* , + , ? , {n} , {n,} , {n,m} qualificador
^ , [vapor:conteúdo]nbsp;posição e ordem
A operação "ou"
corresponde a dois
códigos de programa
de palavras idênticas consecutivas separados por espaços |
/b([az]+) 1b/gim ;
Neste exemplo, a subexpressão é cada termo entre parênteses.
A expressão capturada consiste em um ou mais caracteres alfabéticos, conforme especificado por '[az]+'.
A segunda parte da expressão regular é uma referência à subcorrespondência capturada anteriormente, que é a segunda ocorrência da palavra correspondida pela expressão anexada.
'1' é usado para especificar a primeira subcorrespondência. Os metacaracteres de limite de palavra garantem que apenas palavras individuais sejam detectadas.
Se isso não fosse feito, frases como “é emitido” ou “isto é” seriam reconhecidas incorretamente pela expressão.
código do programa
var ss = "O custo da gasolina está subindo?. O custo da gasolina está subindo?.";
var re = /b([az]+) 1b/gim;
var rv = ss.replace(re,"$1");
document.write(rv) //Saída "O custo da gasolina está subindo?. O custo da gasolina está subindo?."
código do programa
/bCha/
corresponde aos três primeiros caracteres da palavra 'Capítulo' porque eles aparecem após o limite da palavra
código do programa
/terb/
corresponde a 'ter' na palavra 'Capítulo' porque aparece antes de um limite de palavra
código do programa
/Bapt/
corresponde a 'apt' porque está no meio do 'Capítulo', mas não corresponde a 'apt' em 'aptitude' porque está após um limite de palavra
*/
Corresponder
ao código do programa
de endereço URL
/(w+)://([^/:]+)(:d*)?([^#]*)/
Decomponha o seguinte URI em protocolos (ftp, http, etc), Nome de domínio endereço e página/caminho:
http://msdn.microsoft.com:80/scripting/default.htm
A primeira subexpressão adicional é usada para capturar a parte do protocolo do endereço da Web. Esta subexpressão corresponde a qualquer palavra precedida por dois pontos e duas barras. A segunda subexpressão adicional captura o endereço de domínio do endereço. Esta subexpressão corresponde a qualquer sequência de caracteres que não inclua os caracteres '^', '/' ou ':'. A terceira subexpressão adicional captura o número da porta do site, se algum for especificado. Esta subexpressão corresponde a zero ou mais números seguidos por dois pontos. Finalmente, a quarta subexpressão adicional captura as informações do caminho e/ou da página especificadas pelo endereço da web. Esta subexpressão corresponde a um ou mais caracteres, exceto '#' ou espaços.
Quando a expressão regular é aplicada ao URI mostrado acima, as subcorrespondências incluem o seguinte:
RegExp.$1 contém "http"
RegExp.$2 contém "msdn.microsoft.com"
RegExp.$3 contém ":80"
RegExp.$4
Método1
que contém aexpressão regular
"/scripting/default.htm"
O método de testeretorna um valor booleano, que indica se o padrão existe na string que está sendo pesquisada.
rgExp.test(str)
As propriedades do objeto RegExp global não são modificadas por. o método de teste
exemplo1
http://www.knowsky.com/
código do programa
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var flag=reg.test(url);
sinalizador //retorna verdadeiro
RegExp.$1 //Retorna "http"
RegExp.$2 //Retornar "msdn.microsoft.com"
RegExp.$3 //Retorna ":80"
$egExp.$4 //Retornar "/scripting/default.html"
Nem os métodos de pesquisa nem de teste podem atualizar o objeto RegExp global, portanto RegExp.input, RegExp.index e RegExp.lastIndex retornam indefinido
2. O método match
usa um padrão de expressão regular para realizar uma pesquisa na string e retorna o resultado contendo a pesquisa como uma matriz.
código do programa
stringObj.match(rgExp)
Se o método match não encontrar uma correspondência, ele retornará nulo. Se uma correspondência for encontrada, uma matriz será retornada e as propriedades do objeto RegExp global serão atualizadas para refletir a correspondência.
O array retornado pelo método match possui três atributos: input, index e lastIndex.
A propriedade Input contém toda a string que está sendo pesquisada.
A propriedade Index contém a posição da substring correspondente em toda a string de pesquisa.
A propriedade LastIndex contém a posição próxima ao último caractere da última correspondência.
Se o sinalizador global (g) não estiver definido, o elemento 0 da matriz conterá a correspondência inteira e os elementos 1 a n conterão quaisquer subcorrespondências que ocorreram na correspondência.
Isso é equivalente ao método exec sem definir o sinalizador global. Se o sinalizador global estiver definido, os elementos 0 a n conterão todas as correspondências
exemplo1 (o sinalizador global não está definido)
código do programa
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var meuArray=url.match(reg);
RegExp.$1 //Retorna "http"
RegExp.$2 //Retornar "msdn.microsoft.com"
RegExp.$3 //Retorna ":80"
$egExp.$4 //Retornar "/scripting/default.html"
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Retorna "http://msdn.microsoft.com:80/scripting/default.html"
meuArray.index //Retorna 0
myArray.lastIndex //Retorno 51
exemplo2 (conjunto de sinalizadores globais)
código do programa
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/g;
var meuArray=url.match(reg);
RegExp.$1 //Retorna "http"
RegExp.$2 //Retornar "msdn.microsoft.com"
RegExp.$3 //Retorna ":80"
$egExp.$4 //Retornar "/scripting/default.html"
myArray //Return myArray=" http://msdn.microsoft.com:80/scripting/default.html "
myArray.input //Retorna "http://msdn.microsoft.com:80/scripting/default.html"
meuArray.index //Retorna 0
myArray.lastIndex //Retorno 51
Observe a diferença após definir o sinalizador global
Se o sinalizador global (g) não estiver definido, o elemento 0 da matriz conterá a correspondência inteira e os elementos 1 a n conterão quaisquer subcorrespondências que ocorreram na correspondência.
Isso é equivalente ao método exec sem definir o sinalizador global. Se o sinalizador global estiver definido, os elementos 0 a n conterão todas as correspondências
3. O método exex
executa uma pesquisa em uma string usando um padrão de expressão regular e retorna um array contendo os resultados da pesquisa.
código do programa
rgExp.exec(str)
Se o método exec não encontrar uma correspondência, ele retornará nulo.
Se encontrar uma correspondência, o método exec retornará uma matriz e as propriedades do objeto RegExp global serão atualizadas para refletir a correspondência.
O elemento 0 da matriz contém a correspondência completa, enquanto os elementos 1 a n contêm quaisquer subcorrespondências que ocorram na correspondência.
Isso é equivalente ao método match sem definir o sinalizador global (g).
Se o sinalizador global estiver definido para a expressão regular, exec começa a observar a posição indicada pelo valor de lastIndex.
Se o sinalizador global não estiver definido, exec ignora o valor de lastIndex e pesquisa desde o início da string.
O array retornado pelo método exec possui três atributos, a saber, input, index e lastIndex.
A propriedade Input contém toda a string que está sendo pesquisada.
O atributo Index contém a posição da substring correspondente em toda a string pesquisada.
A propriedade LastIndex contém a próxima posição do último caractere da correspondência.
exemplo1 (nenhum sinalizador global definido)
código do programa
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var meuArray=reg.exec(url);
RegExp.$1 //Retorna "http"
RegExp.$2 //Retornar "msdn.microsoft.com"
RegExp.$3 //Retorna ":80"
$egExp.$4 //Retornar "/scripting/default.html"
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Retorna "http://msdn.microsoft.com:80/scripting/default.html"
meuArray.index //Retorna 0
myArray.lastIndex //Retorno 51
Quando o sinalizador global (g) não está definido, o método match é igual ao método exec
exemplo2 (definir sinalizador global)
código do programa
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var meuArray=reg.exec(url);
RegExp.$1 //Retorna "http"
RegExp.$2 //Retornar "msdn.microsoft.com"
RegExp.$3 //Retorna ":80"
$egExp.$4 //Retornar "/scripting/default.html"
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Retorna "http://msdn.microsoft.com:80/scripting/default.html"
meuArray.index //Retorna 0
myArray.lastIndex //Retorno 51
4 O método de pesquisa
retorna a posição da primeira substring que corresponde ao conteúdo da pesquisa de expressão regular.
código do programa
stringOjb.search(rgExp)
O método de pesquisa indica se existe uma correspondência correspondente.
Se uma correspondência for encontrada, o método de pesquisa retornará um valor inteiro indicando o deslocamento da correspondência desde o início da string.
Se nenhuma correspondência for encontrada, -1 será retornado.
exemplo1
código do programa
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var flag=url.search(reg);
sinalizador //retorna 0
RegExp.$1 //Retorna "http"
RegExp.$2 //Retornar "msdn.microsoft.com"
RegExp.$3 //Retorna ":80"
$egExp.$4 //Retornar "/scripting/default.html"
Nem os métodos de pesquisa nem de teste podem atualizar o objeto RegExp global, portanto RegExp.input, RegExp.index e RegExp.lastIndex retornam indefinido
5 O método replace
retorna uma cópia da string após a substituição do texto com base na expressão regular e
pode atualizar o objeto RegExp global.