我正在處理存儲在變量$title
中的UTF8編碼的文本內容。如何使用PHP匹配字母數字和符號?
使用preg_replace
,我該如何添加一個額外的空間,如果$title
字符串結尾:
- 大/小寫字符
- 位數
- 符號,例如。
?
或!
我正在處理存儲在變量$title
中的UTF8編碼的文本內容。如何使用PHP匹配字母數字和符號?
使用preg_replace
,我該如何添加一個額外的空間,如果$title
字符串結尾:
?
或!
這應該做的伎倆:
preg_replace('/^(.*[\w?!])$/', "$1 ", $string);
在本質上它的作用是如果在字符串中的一個結束的不需要的字符會附加一個空格。
如果字符串與模式不匹配,則preg_replace()
會返回原始字符串 - 所以您仍然很好。
如果您需要擴大您不需要的結局的列表,你可以只添加他們進入字符塊[\w?!]
你可能想嘗試這種模式下面匹配,看看是否會爲你。
<?php
// THE REGEX BELOW MATCHES THE ENDING LOWER & UPPER-CASED CHARACTERS, DIGITS
// AND SYMBOLS LIKE "?" AND "!" AND EVEN A DOT "."
// HOWEVER YOU CAN IMPROVISE ON YOUR OWN
$rxPattern = "#([\!\?a-zA-Z0-9\.])$#";
$title = "What is your name?";
var_dump($title);
// AND HERE, YOU APPEND A SINGLE SPACE AFTER THE MATCHED STRING
$title = preg_replace($rxPattern, "$1 ", $title);
var_dump($title);
// THE FIRST var_dump($title) PRODUCES:
// 'What is your name?' (length=18)
// AND THE SECOND var_dump($title) PRODUCES
// 'What is your name? ' (length=19) <== NOTICE THE LENGTH FROM ADDED SPACE.
您可以測試一下HERE。
乾杯......
你需要
$title=preg_replace("/.*[\w?!]$/", "\\0 ", $title);
從技術上講,你想在每一個字符串的結尾添加一個空格? –
定義*符號* ...你有很多選項可以用utf8進行選擇。 – CD001
你需要的是'/ u'修飾符。其餘的不清楚。 –