Jump to content

[SOLVED] Regular Expressions


ignace

Recommended Posts

I have a file like this:

 


[database]
type=mysql
server=localhost
user=
pass=
name=

[website]
title=
description="a long description"
keywords="a, long, description, in, short"

 

i load this file throught file() which gives me an array where every key is a line from the file. Now, what i want to do through regular expressions is finding the lines which contain a word between the [ and ], so as the backslash is the escape character i tried the following:

 

^(\[[a-z]\])$

 

but nothing turns up, probably you guys know why, but i don't, so pls fill me in, i already read a book about regular expressions without any success i also have a cheat sheet doesn't work for me neither :D

 

thanks in advance,

Ignace

Link to comment
Share on other sites

/^(\[[a-z]\])$/

 

The above regular expression will match "[g]" but not "[global]" because there is no quantifier after the character class ("[a-z]").  You probably want to use the "+" quantifier: one or more characters.

 

To match all bracketed content quickly, you can read the file into a string and match them all at once:

 

<?php

$contents = file_get_contents("file.ini");
preg_match_all('/^\[(.*)\]$/', $contents, $matches);

print_r($matches[1]);

?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.