php分割半宽度&;全句
我需要在每个句号、感叹号和问号处将文本拆分成一个数组 带有全宽句号和感叹号的示例:php分割半宽度&;全句,php,regex,Php,Regex,我需要在每个句号、感叹号和问号处将文本拆分成一个数组 带有全宽句号和感叹号的示例: $string = "日本語を勉強しているみんなを応援したいです。一緒に頑張りましょう!"; 我正在寻找以下输出: Array ( [0] => 日本語を勉強しているみんなを応援したいです。 [1] => 一緒に頑張りましょう! ) 我需要相同的代码来处理半宽度 混合全宽和半宽的示例: $string=“嗨,我是鲍勃!很高兴认识你。日本語を勉強しています。你明白我的意思吗 输出:
$string = "日本語を勉強しているみんなを応援したいです。一緒に頑張りましょう!";
我正在寻找以下输出:
Array (
[0] => 日本語を勉強しているみんなを応援したいです。
[1] => 一緒に頑張りましょう! )
我需要相同的代码来处理半宽度
混合全宽和半宽的示例:
$string=“嗨,我是鲍勃!很高兴认识你。日本語を勉強しています。你明白我的意思吗
输出:
Array (
[0] => Hi.
[1] => I am Bob!
[2] => Nice to meet you.
[3] => 日本語を勉強しています。
[4] => Do you understand me? )
我对正则表达式很差劲,既找不出解决方案,也找不到解决方案
我试过:
$string = preg_split('(.*?[。?!])', $string);
首先,您忘记了分隔符(通常是斜杠) 您可以在
\pP
上拆分(unicode标点符号-记住u
修饰符表示unicode):
您可以看到其余的特殊unicode字符
正则表达式尸检:
Array
(
[0] => Hi.
[1] => I am Bob!
[2] => Nice to meet you.
[3] => 日本語を勉強しています。
[4] => Do you understand me?
)
-开始分隔符-它也必须位于修饰符之前的末尾/
(?首先,您忘记了分隔符(通常是斜杠) 您可以在
上拆分(unicode标点符号-记住\pP
修饰符表示unicode): 您可以看到其他特殊unicode字符 正则表达式尸检:u
Array ( [0] => Hi. [1] => I am Bob! [2] => Nice to meet you. [3] => 日本語を勉強しています。 [4] => Do you understand me? )
-开始分隔符-它也必须位于修饰符之前的末尾/
(?我看不出全宽和半宽在PHP需要如何处理字符串方面有什么不同。PHP看不到。和。作为相同的或!和!。与?和?相同。如果它们都在列表分隔符中,则没有区别。我看不出全宽和半宽在PHP需要如何处理字符串方面有什么不同string.PHP看不到。和。与或!和!相同。与?和?相同。如果它们都在列表分隔符中,则没有区别。h2ooooooo,谢谢。不过,这似乎也会在逗号处拆分字符串。我只查找以标点符号结尾的句子。在本例中,是。?和!。示例:非常好的答案。比我开始写的是:)+1在你为所有unicode字符提供的链接上,我注意到最后的标点是Pf。我如何包含它?我尝试了$string=preg_split('/(?@BryseMeijer)将正则表达式改为
/(?在这里我们包含一个负数lookback。)。似乎
不包含常规标点。\p{Pf根本不起作用。您的负后向示例全宽中断。我将其更改为Pf
/(?。这满足了我原来的问题。非常感谢。h2ooooooo,谢谢。不过,这似乎也会在逗号处拆分字符串。我只寻找以句子结尾的标点符号。在本例中是。?和!。示例:回答得很好。比我开始写的要聪明得多:)+1在您为所有unicode字符提供的链接中,我注意到最后的标点是Pf。我如何包含它?我尝试了$string=preg_split('/(?@BryseMeijer)将正则表达式更改为
/(?其中包含一个负数lookback.。似乎
不包含常规标点。\p{Pf}一点也不管用。您的负向后看示例全宽中断。我将其更改为Pf
/(?。这满足了我原来的问题。非常感谢。
Array ( [0] => 日本語を勉強しているみんなを応援したいです。 [1] => 一緒に頑張りましょう! )
Array ( [0] => This is my sentence, [1] => and it is very nice. )
/(?<![,、;;"”\'’``])(?<=\pP)\s*/u