相关疑难解决方法(0)

一个explode()函数忽略引号内的字符?

有人知道一个快速简单的explode()函数,可以忽略包含在一对任意字符(例如引号)中的拆分器字符吗?

例:

my_explode(
  "/", 
  "This is/a string/that should be/exploded.//But 'not/here',/and 'not/here'"
);
Run Code Online (Sandbox Code Playgroud)

应该导致具有以下成员的数组:

This is
a string 
that should be 
exploded.

But 'not/here', 
and 'not/here'
Run Code Online (Sandbox Code Playgroud)

字符用单引号括起来的事实将使它们不被分割.

可以处理两个包装器字符的解决方案的奖励积分

(not/here)
Run Code Online (Sandbox Code Playgroud)

原生PHP解决方案将是首选,但我不认为这样的事情存在!

php string

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

PHP库用于解析类似Google的搜索运算符?

我想创建一个PHP搜索功能,但使用类似Google的运算符.例如:

these words "this phrase" location:"Los Angeles" operator:something
Run Code Online (Sandbox Code Playgroud)

像location这样的运算符很重要:支持带有空格的值(因此这个例子中的引号),所以我不能只是拆分或使用标准令牌.我想有人在某个时候创建​​了一个用于执行此操作的库,但我找不到任何库.

或者如果它不需要库,那​​么这样做的好方法就是好的.

它只是解析我需要的搜索查询; 即从上面的查询中可以得到一个由以下组成的数组:

[0] => these
[1] => words
[2] => "this phrase"
[3] => location:"Los Angeles"
[4] => operator:something
Run Code Online (Sandbox Code Playgroud)

从那以后我可以为数据库构建搜索功能.

php search

7
推荐指数
1
解决办法
1336
查看次数

在除引号中的单词之外的空格上拆分字符串

我有一个字符串

$string = 'Some of "this string is" in quotes';
Run Code Online (Sandbox Code Playgroud)

我想得到一个字符串中所有单词的数组,我可以通过这样做

$words = explode(' ', $string);
Run Code Online (Sandbox Code Playgroud)

但是我不想将引号中的单词拆分,所以理想情况下是结束数组

array ('Some', 'of', '"this string is"', 'in', 'quotes');
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么做到这一点?

php regex string

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

正则表达式按空格分割但忽略双引号字符串

我知道/[\s]+/'用空格分割字符串。我试图扩展它以忽略双引号内的任何空格。所以我想Hello World分开,但又不"Hello World"

preg_split('/[\s]+/', $string)是我在 PHP 中使用的表达式。

php regex

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

在空格上爆炸字符串,但不引用引号中的空格

我正在用PHP构建一个过滤系统.我需要优先考虑基于关键字匹配的文本.过滤器必须识别不同类型的关键字.

其中一种类型是普通词keyword1 keyword2.这将过滤带有'keyword1'和'keyword2'的文本,无论它们是否在文本中连续出现的顺序如何.

另一种类型是单词的精确组合"keyword1 keyword2".这将优先考虑具有确切组合"keyword1 keyword2"的文章.

还有其他类型,但它们在这里不相关.

关键字类型可以合并,因此keyword1 "keyword2 keyword3"有效并且会搜索包含"keyword1"和确切组合"keyword2 keyword3"的文章.

对于第一种类型,我可以使用an explode(' ', $keywords)来获取数组中的关键字.但是,这会搞砸keyword1 "keyword2 keyword3",因为引号中的文本也会分开.

所以我需要一个分隔关键字的函数,但不会用引号分隔文本.有功能可以做到吗?如果没有,是一个正则表达式的方式去?

php regex filter explode keyword

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

标签 统计

php ×5

regex ×3

string ×2

explode ×1

filter ×1

keyword ×1

search ×1