1

次の文が与えられます:

The is 10. way of doing this. And this is 43. street.

preg_split()にこれを与えたい:

Array (
 [0] => "This is 10. way of doing this"
 [1] => "And this is 43. street"
)

使ってます:

preg_split("/[^\d+]\./i", $sentence)

しかし、これは私に与えます:

Array (
 [0] => "This is 10. way of doing thi"
 [1] => "And this is 43. stree"
)

ご覧のとおり、各文の最後の文字が削除されています。なぜこれが起こるのかは知っていますが、それを防ぐ方法がわかりません。何か案は?先読みと後読みはここで役立ちますか?私はそれらにあまり精通していません。

4

2 に答える 2

2

そのために否定的なアサーションを使用したい:

preg_split("/(?<!\d)\./i",$sentence)

違いは、それ[^\d]+がマッチの一部になるsplitため、削除されることです。アサーションも一致します(?!が、「ゼロ幅」です。つまり、区切り文字の一致の一部にならないため、破棄されません。

于 2011-11-18T03:49:59.653 に答える