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
Regex 用于拆分字符串的正则表达式,使用空格,除非在引号和括号内_Regex - Fatal编程技术网

Regex 用于拆分字符串的正则表达式,使用空格,除非在引号和括号内

Regex 用于拆分字符串的正则表达式,使用空格,除非在引号和括号内,regex,Regex,我正在学习使用正则表达式,我创建了[\”“].+?[\”“].[^]+来拆分字符串如果“1”+“1”=“是和否”,那么“1”其他0。 这很好地分割了我的字符串,如下所示: 如果 “1” + “1” = “是和否” 然后 “1” 否则 0 现在我想让我的正则表达式拆分这个字符串IF(“1”+“1”)=“Yes And No”,然后“1”ELSE 0,使用带引号和空格的相同规则,但如果引号在括号内,则忽略它们。字符串应拆分为: 如果 (“1”+“1”) = “是和否” 然后 “1” 否则 0

我正在学习使用正则表达式,我创建了
[\”“].+?[\”“].[^]+
来拆分字符串
如果“1”+“1”=“是和否”,那么“1”其他0
。 这很好地分割了我的字符串,如下所示:

  • 如果
  • “1”
  • +
  • “1”
  • =
  • “是和否”
  • 然后
  • “1”
  • 否则
  • 0
现在我想让我的正则表达式拆分这个字符串
IF(“1”+“1”)=“Yes And No”,然后“1”ELSE 0
,使用带引号和空格的相同规则,但如果引号在括号内,则忽略它们。字符串应拆分为:

  • 如果
  • (“1”+“1”)
  • =
  • “是和否”
  • 然后
  • “1”
  • 否则
  • 0

我如何通过常规表达式和解释来实现这一点,这样我也可以了解它是如何实现的?

我想你可以使用正则表达式:
\([^\]+?[\)].+?[\\\].[\\\\].[\\\\].[\\\\\].[^]+

这基本上是你的正则表达式,还有另一个选择,它在开始时考虑一个括号,并匹配所有内容直到结束括号。正则表达式的其余部分是您以前定义的可选项(例如,将引号和单词中的字符与空格作为分隔符进行匹配)

演示可以在这里看到:


*请注意,regex101是理解正则表达式的一个很好的源代码(检查调试视图,您可以很容易地在这里发布示例以供将来提问。

我认为您可以使用regex:
\([^\)]+?[\)].+?[\”“].+?[\”“].[^]+

这基本上是你的正则表达式,还有另一个选择,它在开始时考虑一个括号,并匹配所有内容直到结束括号。正则表达式的其余部分是您以前定义的可选项(例如,将引号和单词中的字符与空格作为分隔符进行匹配)

演示可以在这里看到:


*请注意,regex101是理解正则表达式的良好来源(查看“调试”视图,您可以很容易地在此处发布示例以供将来提问。

您可以简单地尝试和试验所有详细说明的选项。您可以简单地尝试和试验所有详细说明的选项。感谢网站推荐!感谢网站推荐!