结合正则表达式

时间:2018-11-20 18:29:40

标签: php regex

我目前有2种正则表达式要结合使用,但由于不熟悉,所以我不知道怎么做:.*\Q%s\E.*^(.*?),

因此,基本上给定一个字符串,我想将引号视为文字,并获取字符串中的所有字符,直到出现逗号为止。

2 个答案:

答案 0 :(得分:1)

我认为您不需要为此使用正则表达式。有一种更简单的方法,使用explode

您将在逗号处得到每个字符串的数组。如果没有逗号,则将得到一个仅包含一个值(字符串)的数组。很难将这个示例输入到您的代码中,因为没有示例,因此这里是:

$results = explode( ",", "testing this , string" )

将返回此:

array(2) {
  [0]=>
  string(13) "testing this "
  [1]=>
  string(7) " string"
}

答案 1 :(得分:0)

如果您可以提供一些更多信息,例如可以解析的字符串示例,那么我可以进一步编辑此答案。但出于示例目的,如果您有一个字符串,例如:

This is a "quoted string" ending in a comma,

简单的正则表达式,例如:

/([\s\w"']+),/

根据您最初对“带引号的字符串视为文字”的要求,将捕获该字符串。

正则表达式会给您一个匹配组:

[0]: This is a "quoted string" ending in a comma,

[1]: This is a "quoted string" ending in a comma

使用1显然是要保存的索引,因为使用组()时,0将始终是完全匹配项。

编辑:Ice76关于使用explode分割字符串的答案也是一个很好的选择(而且更简单)。