我目前有2种正则表达式要结合使用,但由于不熟悉,所以我不知道怎么做:.*\Q%s\E.*
和^(.*?),
因此,基本上给定一个字符串,我想将引号视为文字,并获取字符串中的所有字符,直到出现逗号为止。
答案 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分割字符串的答案也是一个很好的选择(而且更简单)。