Assistance with PHP Regex [closed] - php

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
I don't usually use regular expressions, hence my question. I need a regex to match the following:
'{any-string}'.
Any assistance appreciated.

The most simple expression would be:
/{(.*?)}/
If you expect more complex strings (for example, some kind of escape sequence where the { and } characters are allowed within the string) it could be more complex. For instance, with a \ (backslash) escape sequence:
/{((?:\\.|[^}])*)}/
Edit: That's not tested, but the general idea is that the expression will swallow any character following the escape rather than ensuring it isn't the closing brace.

To replace anything in { } with what file_get_contents returns you can do:
$page = file_get_contents('some_file_name or some_url');
$str = '.....{...}....';
$str = preg_replace('/{[^}]*}/',"$page",$str);

Related

Formatting a string in PHP? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
I'm going through sprintf() and other string formatting functions, but I have been unable to find an exact solution for stripping certain types of characters from a string. I wrote a function for this purpose (which seems quite nasty and not at all worth sharing here) but I am sure there is a easier way for what I am looking for.
$var = "abc244$%!";
now I want to format it this way:
$alpha = some_function($var); // alphabets only
$num = some_function($var); // numbers only
$alpha2 = some_function($var); // alphabets and special characters, no numbers.
To strip everything except numbers, use this:
$allnums=preg_replace("/[^0-9]/","",$var);
For all letters:
$letters=preg_replace('/\PL/u', "", $var);
For special chars:
$specialchars=preg_replace("/[a-zA-Z0-9]/", "", $var);

RegEx to find a pattern [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
Looking for regex to do the following in php:
Identify if the given string is in the pattern string1_string2_number e.g ph_val_34563, ph_val_296987 etc.
When true, extract the number part.
regex = "^[A-Za-z]+_[A-Za-z]+_(\d+)$"
Assuming that the valid characters for your strings are letters, [A-Za-z]+ says to expect a group of one or more letters. The _ following these character classes says that an _ must follow.
(\d+) says to group, and capture, a set of one or more numbers following the previous expression.
^ says: "begins with"
$ says: "ends with"
You should take a look at a tutorial on regular expressions.

PHP Individual Character validation. Regex? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
Not terribly familiar with regex, but I'm guessing it's going to make life much easier for my current need.
I need to validate that a string contains the correct sequence of numbers and letters, so that it always follows the format "AA99999A", where A can be any A-Z character and 9 can be any 0-9 character. Other than exploding the string and validating the characters individually, how would the best way to handle this be?
The result can be a simple true / false as I don't need to specify which characters are incorrect
How about:
preg_match('/^[A-Z]{2}\d{5}[A-Z]$/', $string);
You can try this regex:
'/^[A-Z]{2}\d{5}[A-Z]$/i'
PHP's preg_match will do the trick:
$string_to_be_validated = "AB12345C";
if (preg_match("/\A[A-Z]{2}[0-9]{5}[A-Z]{1}\z/", $string_to_be_validated)) echo "valid";
else echo "invalid";
Here you can find more information on this.

Please decode this regular expression for me [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
I inherited some php code for a webgame that I am trying to modify. I came across this line, and I can't figure out what it is supposed to be doing. Could someone help me out? $notice is just a regular string.
$notice = preg_replace("#([\S]{60})#i", "\\1 ", $notice);
It will find any continuous sequence of 60 non-whitespace characters in $notice, and insert a space after it:
(..) creates a capture group. Because it's the first group it's referred to as \1 in the replacement string. Because the whole pattern is in the group it's not really needed here.
[..] create a character class, but because it contains only one meta-character, it's not really needed here, either.
\S matches any non-whitespace character
{60} is a quantifier; it means 'repeated 60 times'.
This code is equivalent to:
$notice = preg_replace("#\S{60}#i", "\\0 ", $notice);

Replace HTML entities with regular expression [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
I would like a regular expression in PHP to find all HTML entities such as "<br /> <br /> ..etc. " in order to remove them from a long string.
This one removes alpha, decimal and hex HTML entities:
$text = preg_replace('/&(?:[a-z\d]+|#\d+|#x[a-f\d]+);/i', '', $text);
Try using this regex... the [^\s]* one was capturing a whole lot other nonsense...
$text = preg_replace("/&(?:[a-z0-9]{2,8}|#[0-9]{2,3}+);/i", '', $text);
Try using strip_tags function, regex is not necessary here

Categories