2011-03-28 5 views
0

J'ai une urlRegex pour supprimer les valeurs de url

"http://10.160.7.62/b2btoolsce/(S(ivww2d43bvkthvczfpsjdpxe))/UI/PdfViewer.aspx?"

je veux avoir une expression rationnelle pour enlever le contenu disponible en() ie (S (ivww2d43bvkthvczfpsjdpxe))

Toutes les idées?

+0

Qu'en est 'http: // exemple. com/(a)/bonjour (b)/UI'? La plupart des solutions publiées supprimeront (a)/bonjour (b) '. Quelle langue utilisez-vous? De plus, les parenthèses sont-elles correctement équilibrées? – Kobi

Répondre

0

Puisque vous utilisez .Net, voici comment vous supprimez les parenthèses et l'une des barres obliques en C#:

newUrl = Regex.Replace(oldUrl, @"\(.*?\)/", ""); 

Cela transformera ...

"http://10.160.7.62/b2btoolsce/(S(ivww2d43bvkthvczfpsjdpxe))/UI/PdfViewer.aspx?" 

... dans. ..

"http://10.160.7.62/b2btoolsce/UI/PdfViewer.aspx?" 

Si vous voulez remplacer les parenthèses avec quelque chose, par exemple Edda, alors écrivez:

newUrl = Regex.Replace(oldUrl, @"\(.*?\)/", "edda/"); 

Il transformera ...

"http://10.160.7.62/b2btoolsce/(S(ivww2d43bvkthvczfpsjdpxe))/UI/PdfViewer.aspx?" 

... en ...

"http://10.160.7.62/b2btoolsce/edda/UI/PdfViewer.aspx?" 
0

Si vous ne se soucient pas de la possibilité de capturer entre parenthèses déséquilibrées à l'intérieur,

/\(.*\)/ 

.* va essayer d'aller le plus longtemps possible, il capturera de la première ( jusqu'à la dernière ) dans votre url. Ensuite, vous cam remplacez cela par une chaîne vide pour l'enlever.

0
b2btoolsce/(?<matchToRemove>\(.*?\))/UI 

Le. *? Ce n'est pas gourmand.

0

/\((.*)\)/

c'est l'expression régulière dont vous avez besoin.