小编M. *_*han的帖子

正则表达式 - 基于标点符号/空格将字符串拆分为数组

我需要一种方法,根据标点符号或空格的存在将字符串拆分成几个不同的部分.

我的意思是,每个单词都应该被分成它自己的数组元素,而且在单词的开头或结尾处的标点符号也应该放入它自己的数组元素中.

例如:我需要能够将字符串Hello, Harry Potter. I'm Tom Riddle.转换为

array(
   "Hello",
    ", "
    "Harry",
    "Potter"
    ". ",
    "I'm",
    "Tom",
    "Riddle",
    ". "
)
Run Code Online (Sandbox Code Playgroud)

所以标点符号中的单词的中间(在单词中间例如撇号)不应引起分离**编辑:**所以澄清所需的行为,I'm,didn't等应保持一个字,但是hello!,"okay,等等,应该远离开头或结尾的标点符号.

另外,我希望包含在搜索中的标点符号是:

  • .(句号/句号)
  • ?(问号)
  • !(惊叹号)
  • ,(逗号)
  • ; (分号)
  • :(冒号)
  • ( - )(连字符破折号)
  • ((开始括号)
  • )(结束括号)
  • {(开始squigly大括号)
  • }(结束squigly支撑)
  • [(开始方括号)
  • ](方括号)
  • '(单引号)
  • "(双引号)
  • ......(elpises)

我找到的最接近的结果是:

preg_split('/(\s|[\.,\/])/', $string, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
Run Code Online (Sandbox Code Playgroud)

但是,问题是:

  • 标点符号中间词计为正常标点符号
  • 包含数组元素的数组元素也不包含空格.编辑:抱歉模糊不清; 通过这个,我的意思是我希望标点字符包含在puntuation标记之后/之前的空格.例如,如果它是一个逗号,它将是,(后面的空格),但如果它是一个开括号,它将是((之前的空格).
  • 当我添加其余的标点符号时,我需要(preg_split("/(\s|[\.?!,;:-(){}[]'\"…\/])/",)我得到一个错误.我很确定这个错误是由于一个未转义的字符,所以我运行了整个过程preg_quote,返回了\.\?\!,;\:\-\(\)\{\}\[\]'"…,但这仍然给出了错误:Parse …

php regex

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

在流程图中显示嵌套的 for 循环

如何在流程图中显示嵌套循环?

\n\n

我想在流程图中显示一个嵌套的 foreach 循环,显示类似这样的内容

\n\n
foreach($array as $item) {\n    foreach($SecondArray as $key=>$value) {\n        // Do stuff...\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在纠正我,如果我错了,但是没有办法在流程图中显示 foreach 循环,所以我需要在图中显示 for 循环(?)所以算法应该显示为更多内容喜欢:

\n\n
for ($i = 0; $i < count($array); i++) {\n    for ($j = 0; $j < count($arrayTwo); $j++) {\n        // Do stuff...\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在看看这个问题的答案(如何在算法的块表示中描绘 \xe2\x80\x9cfor\xe2\x80\x9d 循环),单个 for 循环可以显示如下:

\n\n

单循环流程图

\n\n

但我想不出任何可以显示嵌套循环的方法(以显示我上面编写的代码)。

\n\n

有什么建议么?

\n

loops flowchart

2
推荐指数
1
解决办法
4万
查看次数

标签 统计

flowchart ×1

loops ×1

php ×1

regex ×1