我有一些代码,例如:
if('hello' == 2 && 'world' !== -1){
return true;
}
我在if
语句中匹配条件时遇到了一些麻烦。我想到的第一个正则表达式是/'.*'/
,但这符合:
这不是我所希望的。我只想匹配单引号和里面的文字。
任何团体都有任何想法吗?
答案 0 :(得分:0)
这两个匹配的组应该选择你引用的值:
^.*(\'.*?\').*(\'.*?\').*$
答案 1 :(得分:0)
针对您的具体情况
\'[a-z]*?\'
对于整个代码,如果引号中包含大写字符,则可以使用
\'[a-zA-Z]*?\'
但是,如果引号中也有特殊字符,那么您可以使用@Chris Cooper建议的内容。根据您的需要,可能会有各种各样的答案。
注意:'?'在*使*非贪婪之后,所以它不会尝试搜索直到最后一个引用。
使用哪种正则表达式来获得答案也很重要。
答案 2 :(得分:0)
试试这个
preg_match_all('/\'[^\'\r\n]*\'/m', $subject, $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[0]); $i++) {
# Matched text = $result[0][$i];
}
<强>解释强>
"
' # Match the character “'” literally
[^'\\r\\n] # Match a single character NOT present in the list below
# The character “'”
# A carriage return character
# A line feed character
* # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
' # Match the character “'” literally
"
答案 3 :(得分:0)
这是我想出来的!
preg_match_all("#'[^'\n\r]*'#", $subject, $matches);
'
。'
,新行或回车符。'
。如果没有所有的转义,我认为它更具可读性 - 无论如何都是正则表达式。