我有以下正则表达式:
\[([^ -\]]+)( - ([^ -\]]+))+\]
Run Code Online (Sandbox Code Playgroud)
这成功匹配如下:
[abc - def - ghi - jkl]
Run Code Online (Sandbox Code Playgroud)
但比赛是:
Array
(
[0] => [abc - def - ghi - jkl]
[1] => abc
[2] => - jkl
[3] => jkl
)
Run Code Online (Sandbox Code Playgroud)
我需要的是这样的:
Array
(
[0] => [abc - def - ghi - jkl]
[1] => abc
[2] => - def
[3] => def
[4] => - ghi
[5] => ghi
[6] => - jkl
[7] => jkl
)
Run Code Online (Sandbox Code Playgroud)
我能够在C#中查看群组"捕获".我怎么能用PHP做到这一点?
我想知道,在一般编程中有什么更好或更快?避免异常或等待异常?
避免例外是:
string a = null;
list = someMethod();
if(list.Length > 0 ){
a = list[0];
}
if(a!=null) ...
Run Code Online (Sandbox Code Playgroud)
或尝试捕捉异常......
string a = null;
try{
a = someMethod()[0];
catch{}
if(a!=null) ...
Run Code Online (Sandbox Code Playgroud) 嗨,我正在为吉他和弦开发一个库.在库中的一些文件中我有这样的东西:
require_once "lib/GuitarChord.php";
require_once "lib/Chord.php";
require_once "lib/Key.php";
require_once "lib/Tuning.php";
Run Code Online (Sandbox Code Playgroud)
我怎样才能让这个库,所以它并不需要知道其中的其他库文件?
这样一个人可以在任何目录中拥有库文件?
编辑:删除了第二个问题.
在PHP中我有两个对象,它们是不同的,因为$ _frets变量(x是一个字符串"x"),但PHP说
($o1 == $o2) == TRUE.
Run Code Online (Sandbox Code Playgroud)
为什么?
转储$o1:
guitarChord Object
(
[_guitarChord:guitarChord:private] =>
[_chord:guitarChord:private] => chord Object()
[_baseFret:guitarChord:private] => 0
[_frets:guitarChord:private] => Array
(
[0] => x
[1] => 0
[2] => 2
[3] => 2
[4] => 2
[5] => x
)
[_tuning:guitarChord:private] => tuning Object()
[currVariation] => 0
[nextVariation] =>
[prevVariation] =>
)
Run Code Online (Sandbox Code Playgroud)
转储$o2:
guitarChord Object
(
[_guitarChord:guitarChord:private] =>
[_chord:guitarChord:private] => chord Object()
[_baseFret:guitarChord:private] => 0
[_frets:guitarChord:private] => Array
(
[0] => x …Run Code Online (Sandbox Code Playgroud) 嘿,所以我正在使用范围,我试图限制用户可以在页面上进行的选择.我的意思是用户可以选择他想要的任何东西,但选择不能超过我将设置的边界.
首先,我用定义的范围定义"边界".然后我将当前用户选择与定义的范围进行比较,如果当前选择开始低于边界或者当前选择结束高于边界,则我相应地调整,以便用户选择永远不会超出定义的边界范围/选择.
下面的函数只能工作如果我在进程启动前输出一个警报,如果我删除警报,那么firefox表现得很奇怪(比如选择页面的其他部分等)
问题是:为什么以下代码适用于警报以及为什么没有警报就无法正常工作?
谢谢!
var range = document.createRange(); // this is the boundaries range
range.selectNodeContents(document.getElementById("container"));
function test(){
alert("let's go"); // if I remove this alert, the code doesn't work as expected, WHY?!
if(window.getSelection().rangeCount == 0){
return;
}
var curRange = window.getSelection().getRangeAt(0);
if(curRange.compareBoundaryPoints(Range.START_TO_START, range) < 0){
curRange.setStart(range.startContainer,range.startOffset);
}
if(curRange.compareBoundaryPoints(Range.END_TO_END, range) > 0){
curRange.setEnd(range.endContainer,range.endOffset);
}
}
Run Code Online (Sandbox Code Playgroud) 我总是想知道为什么bootstrap不使用X图标作为关闭按钮.
有没有理由不使用标准X?
例:

标准X(gmail.com):
