我在解决这个方面遇到了一些麻烦.
我有这样的数据:
$ data ="Alpha Natural Resources Inc COM 02076X102 2,077 45,700 x
我希望在有多个空间的地方"爆炸"这条线.我遇到的问题是我只找到了破坏有一个或多个空间的线的解决方案 - 我希望炸掉这条有多个空间的线,但不只是一个空间(所以例如,Alpha Natural Resources Inc就在一起.
我知道答案是在preg_split中找到的,但我无法弄清楚正确的代码..
谢谢
在我的PHP代码中,我在字符串中分配了名称空间的类名,例如:
$my_class_name; // = "Aaa\Bbb\Ccc"; // this is not in source code, just var dump
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我只需要中间名,'Bbb'.我试着用这个:
$result_array = preg_split("/\\/", $my_class_name);
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.我需要在正则表达式中使用tripple反斜杠"/\\\/"才能使其正常工作.我的问题是:为什么我需要三个呢?我总是通过加倍来逃避反斜杠特殊功能.
我已经在这半天努力了,我似乎无法找到答案.请帮助一个菜鸟.:)
我有一个字符串,其中包含几个用大括号括起来的句子.它看起来像这样:
{Super duper extra text.} {令人敬畏的另一个文字!} {我们又来了......}
现在我想分开它.
我想我可以搜索像.} {等等的模式.所以我这样做:
$key = preg_split('/[!?.]{1,3}\} \{/',$key);
Run Code Online (Sandbox Code Playgroud)
但是这样我丢失了分隔符,我丢失了所有这些.!?在句末.
我试着这样做:
$key = preg_split('/([!?.]{1,3}\} \{)/',$key, -1, PREG_SPLIT_DELIM_CAPTURE);
$sentences = array();
for ($i=0, $n=count($key)-1; $i<$n; $i+=2) {
$sentences[] = $key[$i].$key[$i+1]."<br><br>";
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码永远不会加载,所以我收集了一些错误.但是什么?
提前致谢.
继我之前的问题,关于preg_split哪个答案超级快,多亏了尼克; 当分隔符在引号内时,我真的想将场景扩展为不拆分字符串.例如:
如果我有字符串foo = bar AND bar=foo OR foobar="foo bar",我希望在每个空格或=字符上拆分sting 但=在返回的数组中包含字符(当前效果很好),但我不想拆分字符串中的任何一个分隔符引号.
到目前为止我有这个:
<!doctype html>
<?php
$string = 'foo = bar AND bar=foo';
$array = preg_split('/ +|(=)/', $string, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
?>
<pre>
<?php
print_r($array);
?>
</pre>
Run Code Online (Sandbox Code Playgroud)
哪个让我:
Array
(
[0] => foo
[1] => =
[2] => bar
[3] => AND
[4] => bar
[5] => =
[6] => foo
)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将字符串更改为:
$string = 'foo = bar AND bar=foo OR foobar …Run Code Online (Sandbox Code Playgroud) 我的字符串是$text1 = 'A373R12345'
我想要查找此字符串的最后一个数字编号.
所以我使用这个正则表达式^(.*)[^0-9]([^-]*)
然后我得到了这个结果:
1.A373
2.12345
但我的预期结果是:
1.A373R
(它有'R')
2.12345
另一个例子是$text1 = 'A373R+12345'
然后我得到了这个结果:
1.A373R
2.12345
但我的预期结果是:
1.A373R +
(它有'+')
2.12345
我想要包含最后一个没有数字的数字!!
请帮忙 !!谢谢!!
我正在使用以下正则表达式将字符串拆分为数组.一切都很顺利,但由于某种原因,它并没有分裂\.(space).我怎么需要改变它才能使它工作?
$sentences = preg_split(" / (\. |, and|, or|, but|, nor|, so|, for|, yet|after|although|as|as if|as long as|because|before|even if|even though|if|once|provided|since|so that|that|though|till|unless|until|what|when|whenever|wherever|whether|while) /",$sentences);
Run Code Online (Sandbox Code Playgroud) 我试图用不在单引号之间的空格pref_split一个字符串.
这是我正在使用的字符串:
'physical memory %'=92%;99;100 'physical memory'=29.69GB;31.68;32;0;32
Run Code Online (Sandbox Code Playgroud)
以下正则表达式模式成功匹配我要拆分的空间:
/\x20(?=[^']*('[^']*'[^']*)*$)\g
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我使用http://www.regexr.com/编写了这个字符串,这是特定于JavaScript正则表达式,我需要这个在PHP中工作.
这是我到目前为止的PHP代码,但它抛出一个错误:
preg_split("/\x20(?=[^']*('[^']*'[^']*)*$)/g", "'physical memory %'=92%;99;100 'physical memory'=29.69GB;31.68;32;0;32");
Run Code Online (Sandbox Code Playgroud)
错误:
preg_split(): Unknown modifier 'g'
Run Code Online (Sandbox Code Playgroud)
如果我删除/和/ g我收到以下错误:
preg_match_all(): Compilation failed: nothing to repeat at offset 0
Run Code Online (Sandbox Code Playgroud)
我的猜测是,由于某种原因,PHP中的正则表达式不匹配任何值,因此无法拆分字符串.有人可以帮忙解决这个问题吗?
谢谢.
我有既包含URI &和&&我需要它仅在单个分成数组&定界符,例如query1=X&query2=A&&B&query3=Y
应打印出来
array(
0 => query1=X
1 => query2=A&&B
2 => query3=Y
)
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用,preg_split但无法弄清楚正则表达式.有人可以帮忙吗?
我正在使用preg_split拆分以下字符串:
$string = 'textarea name="custom_field" label="Space space space" column="1/2"';
$preg_split = preg_split("/\s(?![\w\s]+\")/", $string);
echo '<pre>',print_r($preg_split,1),'</pre>';
Run Code Online (Sandbox Code Playgroud)
此代码给出以下结果:
Array
(
[0] => textarea
[1] => name="custom_field"
[2] => label="Space space space"
[3] => column="1/2"
)
Run Code Online (Sandbox Code Playgroud)
这里一切都很好。
但是,如果我在土耳其语字符中添加空格,则无法按预期运行:
$string = 'textarea name="custom_field" label="âç?? ?îö?üû" column="1/2"';
$preg_split = preg_split("/\s(?![\w\s]+\")/", $string);
echo '<pre>',print_r($preg_split,1),'</pre>';
Run Code Online (Sandbox Code Playgroud)
它用土耳其语字符分割字符串的中间:
Array
(
[0] => textarea
[1] => name="custom_field"
[2] => label="âç??
[3] => ?îö?üû"
[4] => column="1/2"
)
Run Code Online (Sandbox Code Playgroud)
如何检测preg_split中的土耳其语字符并将其保持在一个数组值中?像这样:
Array
(
[0] => textarea
[1] => name="custom_field"
[2] => label="âç?? ?îö?üû" …Run Code Online (Sandbox Code Playgroud) 我有字符串
cream 100G
sup 5mg Children
Run Code Online (Sandbox Code Playgroud)
我想在第一次出现数字之前拆分它.所以结果应该是
array(
array('cream','100G'),
array('sup','5mg Children')
);
Run Code Online (Sandbox Code Playgroud)
可以这样告诉我如何为此创建模式?
我试过了
list($before, $after) = array_filter(array_map('trim',
preg_split('/\b(\d+)\b/', $t->formula)), 'strlen');
Run Code Online (Sandbox Code Playgroud)
但出了点问题.