Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 分隔符正则表达式前后的任何内容_Regex_Delimiter - Fatal编程技术网

Regex 分隔符正则表达式前后的任何内容

Regex 分隔符正则表达式前后的任何内容,regex,delimiter,Regex,Delimiter,以下是我得到并期望得到的结果: “这是成功的” 结果: 这个 是 成功的 “,也是成功的” 结果: 也很成功 以下是错误的- “这不成功” 结果: 这是不成功的 我只想在且仅当分隔符在字符串中时匹配分隔符之前和之后的任何内容。我尝试使用+。进行额外的前瞻。但是,当出现像“,”这样的分隔符时,得到的结果要么包含所有内容,要么根本不包含任何内容。您可以使用这个基于lookarounds的正则表达式: (?=.+?,*)[^,]+ (?尝试以下正则表达式: (?<=,)[^,]*|

以下是我得到并期望得到的结果:

“这是成功的”

结果:

  • 这个
  • 成功的
“,也是成功的”

结果:

  • 也很成功
以下是错误的-

“这不成功”

结果:

  • 这是不成功的

我只想在且仅当分隔符在字符串中时匹配分隔符之前和之后的任何内容。我尝试使用
+。
进行额外的前瞻。但是,当出现像“,”这样的分隔符时,得到的结果要么包含所有内容,要么根本不包含任何内容。

您可以使用这个基于lookarounds的正则表达式:

(?=.+?,*)[^,]+

(?尝试以下正则表达式:

(?<=,)[^,]*|[^,]*(?=,)

在PHP5.5上测试。(上面的正则表达式在PHP中使用
preg\u match\u all
函数运行得很好)

至少在regexr.com上,我注意到了一些问题。“word”不返回匹配项。“word,test”返回整个字符串作为结果,我也不希望结果中包含分隔符。“word,test,foo”返回2个匹配项:word、test-,我不知道是谁否决了你,但到目前为止,这与我的C#代码场景配合得很好。很遗憾javascript不支持lookback,所以它可能不适用于所有人。如果有人没有提供通用解决方案,我会将此标记为答案。谢谢!是的,我不确定为什么会否决这可能是因为我使用了look arounds而没有首先要求正则表达式的味道。这是一个带有捕获组的版本:并且几乎可以在任何地方使用。它必须匹配
成功的
,同样在模式的第二行,最好使用
+
而不是
*
。否则,如果字符串类似于“,”,则可能会匹配空格。建议图案。
([^,]+)?,([^,]+)|([^,]+),([^,]+)?