[英]How to break string through regex in PHP
串:
"hello, how are you? you are fine. i am good too."
我想根據來打斷這個字符串, ? .
, ? .
通過reg-ex在php中使用這些字符,或者您可以為我提供簡單的reg-ex。
數組中的所需結果:
[0]hello
[1]how are you
[2]you are fine
[3]i am good too
請為此提供正則表達式。 再次的問題是提供正則表達式,通過它我可以打破字符串。 匹配字符應為. , ?
. , ?
您可以在此正則表達式中使用preg_split
:
/[^A-Za-z\s]\s*/
它尋找一個不是字母或空格的字符,然后是一個或多個空格(可選)。 這允許標點符號后沒有空格的情況。 請注意,我們將PREG_SPLIT_NO_EMPTY
標志用於preg_split
以便如果字符串以標點符號結尾,則在輸出中不會出現空字符串。
$string = "hello, how are you?you are fine. i am good too.";
$output = preg_split('/[^A-Za-z\s]\s*/', $string, -1, PREG_SPLIT_NO_EMPTY);
print_r($output);
輸出:
Array (
[0] => hello
[1] => how are you
[2] => you are fine
[3] => i am good too
)
您可以將preg_split
方法與正則表達式配合使用,該正則表達式與任何非單詞字符相匹配,后跟空格和文本末尾的非單詞字符。 if
輸入文本的末尾確實包含標點符號,則使用if
pop
數組中存在的結尾空字符串。
$input = "hello, how are you? you are fine. i am good too.";
$output = preg_split( "/\W(?:\s|$)/", $input );
if(strlen(end($output))==0)
{
array_pop($output);
}
foreach ($output as $item) {
echo $item;
echo "\n";
}
輸出:
hello
how are you
you are fine
i am good too
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.