2017-02-02 8 views
0

ハイフン( - )の前に文字があるかどうか確認したいと思います。文字の前に何かがあるか確認してください

だけのスペースがある場合は、何もしない、 <br>-

を追加する何かがある場合。 私は正規表現とよくないよ:(

+0

が先行していることを保証するには、私たちにあなたはあなたがどちらかといえば、あなたは試してみましたが、何の質問に追加する必要が –

+2

を持っている悪い正規表現を示しています。 – Ale

+0

$ newstr = preg_replace( '/-\./ s'、 '
- '、これは1行です - これは2番目になります); これは私が試みたものですが、何かが正規表現のハイフンの前になければならないと思います –

答えて

0

私は私のコーディングのキャリアの初めに正規表現で悪いことするために使用されるが、それを勉強する時間がかかる。

あなたが探しているパターンは非常に簡単です:([^\s])(-)

ここではそれをテストすることができます。http://regexr.com/3f73e

[^\s]は空白(\sは空白を意味する)ではない任意の文字と一致することを意味し

-は、ハイフンと一致します。

()は、キャプチャグループを意味します。したがって、グループ1をキャプチャすると、ハイフンの前に文字がキャプチャされ、グループ2をキャプチャするとハイフンがキャプチャされます。これは、キャプチャグループ1を維持したい場合には、置き換えに重要です。 (ビューソースコードとして)出力

$str = "The couch said: 'Use one-two-three combination'. -a) But it wasn't about boxing, it was about ping-pong"; 
$new_str = preg_replace("/(?<=\S)-/", "<br>-", $str); 

print_r($new_str); 

preg_replace関数と特定の正規表現パターンを用い

2

溶液

The couch said: 'Use one<br>-two<br>-three combination'. -a) But it wasn't about boxing, it was about ping<br>-pong 

\Sを - 非空白を指し文字

(?<=\S) - 正後読み assetion、ハイフンが文字

関連する問題