标签: preg-split

使用具有多个空格的Preg_Split

我在解决这个方面遇到了一些麻烦.

我有这样的数据:

$ data ="Alpha Natural Resources Inc COM 02076X102 2,077 45,700 x

我希望在有多个空间的地方"爆炸"这条线.我遇到的问题是我只找到了破坏有一个或多个空间的线的解决方案 - 我希望炸掉这条有多个空间的线,但不只是一个空间(所以例如,Alpha Natural Resources Inc就在一起.

我知道答案是在preg_split中找到的,但我无法弄清楚正确的代码..

谢谢

php preg-split

3
推荐指数
2
解决办法
1万
查看次数

反斜杠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反斜杠"/\\\/"才能使其正常工作.我的问题是:为什么我需要三个呢?我总是通过加倍来逃避反斜杠特殊功能.

php regex escaping backslash preg-split

3
推荐指数
1
解决办法
5571
查看次数

PHP preg_split,表达我的大括号并保存分隔符

我已经在这半天努力了,我似乎无法找到答案.请帮助一个菜鸟.:)

我有一个字符串,其中包含几个用大括号括起来的句子.它看起来像这样:

{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)

但是这段代码永远不会加载,所以我收集了一些错误.但是什么?

提前致谢.

php regex delimiter preg-split

3
推荐指数
1
解决办法
3144
查看次数

PHP preg_split有两个分隔符,除非分隔符在引号内

继我之前的问题,关于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)

php regex delimiter preg-split

3
推荐指数
1
解决办法
2099
查看次数

PHP Regex匹配最后一次出现的字符串

我的字符串是$text1 = 'A373R12345'
我想要查找此字符串的最后一个数字编号.
所以我使用这个正则表达式^(.*)[^0-9]([^-]*)
然后我得到了这个结果:
1.A373
2.12345

但我的预期结果是:
1.A373R
(它有'R')
2.12345

另一个例子是$text1 = 'A373R+12345'
然后我得到了这个结果:
1.A373R
2.12345

但我的预期结果是:
1.A373R +
(它有'+')
2.12345

我想要包含最后一个没有数字的数字!!
请帮忙 !!谢谢!!

php regex preg-match preg-split

3
推荐指数
1
解决办法
7537
查看次数

PHP preg_split正则表达式不会用点分割

我正在使用以下正则表达式将字符串拆分为数组.一切都很顺利,但由于某种原因,它并没有分裂\.(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)

php regex preg-split

3
推荐指数
1
解决办法
904
查看次数

preg_split一个字符串,不是单引号之间的空格

我试图用不在单引号之间的空格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中的正则表达式不匹配任何值,因此无法拆分字符串.有人可以帮忙解决这个问题吗?

谢谢.

php regex preg-split

3
推荐指数
1
解决办法
924
查看次数

将字符串拆分为&但不是&&

我有既包含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但无法弄清楚正则表达式.有人可以帮忙吗?

php preg-split

3
推荐指数
1
解决办法
273
查看次数

PHP 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)

php preg-split

3
推荐指数
1
解决办法
36
查看次数

php:拆分字符串直到第一次出现一个数字

我有字符串

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)

但出了点问题.

php preg-match preg-split

2
推荐指数
2
解决办法
3057
查看次数

标签 统计

php ×10

preg-split ×10

regex ×6

delimiter ×2

preg-match ×2

backslash ×1

escaping ×1