Regex: Matching any character (a-z and 0-9), but not $ in order to upgrade to PHP 7.2 [duplicate]
up vote
-1
down vote
favorite
This question already has an answer here:
Fix unquoted PHP array keys
1 answer
How to fix associative array keys that lack single quotation marks in multiple files
4 answers
Upgrading some really old PHP code and need to find all occurrences of array access without quotation mars (" and '). Should match [abc] but not ["abc"] or ['abc']. My regex works, but it also matches the $ character(like [$abc]), which i don't want.
Here is my full regex: [[^"'][A-Za-z0-9]+][^"']
https://regex101.com/r/uJM6DQ/1
How can I make it stop matching the $ character? Why does it match the $ character even if I never ask regex to match it?
php regex
marked as duplicate by mario
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 11 at 13:15
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
add a comment |
up vote
-1
down vote
favorite
This question already has an answer here:
Fix unquoted PHP array keys
1 answer
How to fix associative array keys that lack single quotation marks in multiple files
4 answers
Upgrading some really old PHP code and need to find all occurrences of array access without quotation mars (" and '). Should match [abc] but not ["abc"] or ['abc']. My regex works, but it also matches the $ character(like [$abc]), which i don't want.
Here is my full regex: [[^"'][A-Za-z0-9]+][^"']
https://regex101.com/r/uJM6DQ/1
How can I make it stop matching the $ character? Why does it match the $ character even if I never ask regex to match it?
php regex
marked as duplicate by mario
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 11 at 13:15
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
1
Perhaps add it to the first negated character class[[^$"'][A-Za-z0-9]+][^"']
– The fourth bird
Nov 11 at 12:28
Haha, good point, that solves the problem. Thanks! But do you know why it matches the $ in the first place?
– Jan Greger Hemb
Nov 11 at 12:32
2
"even if I never ask regex to match it": You do ask to match it with the negative class:[^"']
. You'll agree that$
complies with that (among many other characters)
– trincot
Nov 11 at 12:32
1
Because you use a negated character class[^"']
. The negated character class matches any character that is not in the character class.
– The fourth bird
Nov 11 at 12:34
1
Ah, now I understand it. Thanks for the help!
– Jan Greger Hemb
Nov 11 at 12:36
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
This question already has an answer here:
Fix unquoted PHP array keys
1 answer
How to fix associative array keys that lack single quotation marks in multiple files
4 answers
Upgrading some really old PHP code and need to find all occurrences of array access without quotation mars (" and '). Should match [abc] but not ["abc"] or ['abc']. My regex works, but it also matches the $ character(like [$abc]), which i don't want.
Here is my full regex: [[^"'][A-Za-z0-9]+][^"']
https://regex101.com/r/uJM6DQ/1
How can I make it stop matching the $ character? Why does it match the $ character even if I never ask regex to match it?
php regex
This question already has an answer here:
Fix unquoted PHP array keys
1 answer
How to fix associative array keys that lack single quotation marks in multiple files
4 answers
Upgrading some really old PHP code and need to find all occurrences of array access without quotation mars (" and '). Should match [abc] but not ["abc"] or ['abc']. My regex works, but it also matches the $ character(like [$abc]), which i don't want.
Here is my full regex: [[^"'][A-Za-z0-9]+][^"']
https://regex101.com/r/uJM6DQ/1
How can I make it stop matching the $ character? Why does it match the $ character even if I never ask regex to match it?
This question already has an answer here:
Fix unquoted PHP array keys
1 answer
How to fix associative array keys that lack single quotation marks in multiple files
4 answers
php regex
php regex
asked Nov 11 at 12:27
Jan Greger Hemb
156
156
marked as duplicate by mario
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 11 at 13:15
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
marked as duplicate by mario
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 11 at 13:15
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
1
Perhaps add it to the first negated character class[[^$"'][A-Za-z0-9]+][^"']
– The fourth bird
Nov 11 at 12:28
Haha, good point, that solves the problem. Thanks! But do you know why it matches the $ in the first place?
– Jan Greger Hemb
Nov 11 at 12:32
2
"even if I never ask regex to match it": You do ask to match it with the negative class:[^"']
. You'll agree that$
complies with that (among many other characters)
– trincot
Nov 11 at 12:32
1
Because you use a negated character class[^"']
. The negated character class matches any character that is not in the character class.
– The fourth bird
Nov 11 at 12:34
1
Ah, now I understand it. Thanks for the help!
– Jan Greger Hemb
Nov 11 at 12:36
add a comment |
1
Perhaps add it to the first negated character class[[^$"'][A-Za-z0-9]+][^"']
– The fourth bird
Nov 11 at 12:28
Haha, good point, that solves the problem. Thanks! But do you know why it matches the $ in the first place?
– Jan Greger Hemb
Nov 11 at 12:32
2
"even if I never ask regex to match it": You do ask to match it with the negative class:[^"']
. You'll agree that$
complies with that (among many other characters)
– trincot
Nov 11 at 12:32
1
Because you use a negated character class[^"']
. The negated character class matches any character that is not in the character class.
– The fourth bird
Nov 11 at 12:34
1
Ah, now I understand it. Thanks for the help!
– Jan Greger Hemb
Nov 11 at 12:36
1
1
Perhaps add it to the first negated character class
[[^$"'][A-Za-z0-9]+][^"']
– The fourth bird
Nov 11 at 12:28
Perhaps add it to the first negated character class
[[^$"'][A-Za-z0-9]+][^"']
– The fourth bird
Nov 11 at 12:28
Haha, good point, that solves the problem. Thanks! But do you know why it matches the $ in the first place?
– Jan Greger Hemb
Nov 11 at 12:32
Haha, good point, that solves the problem. Thanks! But do you know why it matches the $ in the first place?
– Jan Greger Hemb
Nov 11 at 12:32
2
2
"even if I never ask regex to match it": You do ask to match it with the negative class:
[^"']
. You'll agree that $
complies with that (among many other characters)– trincot
Nov 11 at 12:32
"even if I never ask regex to match it": You do ask to match it with the negative class:
[^"']
. You'll agree that $
complies with that (among many other characters)– trincot
Nov 11 at 12:32
1
1
Because you use a negated character class
[^"']
. The negated character class matches any character that is not in the character class.– The fourth bird
Nov 11 at 12:34
Because you use a negated character class
[^"']
. The negated character class matches any character that is not in the character class.– The fourth bird
Nov 11 at 12:34
1
1
Ah, now I understand it. Thanks for the help!
– Jan Greger Hemb
Nov 11 at 12:36
Ah, now I understand it. Thanks for the help!
– Jan Greger Hemb
Nov 11 at 12:36
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
1
Perhaps add it to the first negated character class
[[^$"'][A-Za-z0-9]+][^"']
– The fourth bird
Nov 11 at 12:28
Haha, good point, that solves the problem. Thanks! But do you know why it matches the $ in the first place?
– Jan Greger Hemb
Nov 11 at 12:32
2
"even if I never ask regex to match it": You do ask to match it with the negative class:
[^"']
. You'll agree that$
complies with that (among many other characters)– trincot
Nov 11 at 12:32
1
Because you use a negated character class
[^"']
. The negated character class matches any character that is not in the character class.– The fourth bird
Nov 11 at 12:34
1
Ah, now I understand it. Thanks for the help!
– Jan Greger Hemb
Nov 11 at 12:36