Я хотел бы проверить, есть ли символ до дефиса (-).Проверьте, есть ли что-то перед символом php
Если есть что-то добавить, то <br>-
Если есть только пространство, ничего не делать. Я не очень хорошо с регулярными выражениями :(
Я хотел бы проверить, есть ли символ до дефиса (-).Проверьте, есть ли что-то перед символом php
Если есть что-то добавить, то <br>-
Если есть только пространство, ничего не делать. Я не очень хорошо с регулярными выражениями :(
Раньше я плохо с регулярным выражением в начале моей карьеры кодирования, а просто взять время, чтобы изучить его.
Узор вы ищете очень просто : ([^\s])(-)
Здесь вы можете проверить с ним: http://regexr.com/3f73e
[^\s]
означает соответствие любых символов, кроме пробела (\s
означает пробел)
-
соответствует дефису
()
означает группу захвата. Таким образом, группа захвата захватит символ до дефиса, а вторая группа захвата захватит дефис. Это важно для замены, так как вы хотите сохранить группу захвата.
Раствор с помощью preg_replace
функции и конкретный шаблон регулярных выражений:
$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);
Выход (в виде вид-источник код):
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 просмотра назад, уверяет, что дефис предшествует символ
показать нам плохую регулярное выражение, которое у вас есть –
Вам нужно добавить на вопрос, что, если что-нибудь, вы пробовали. – Ale
$ newstr = preg_replace ('/-\ ./ s', '
-', "Это одна строка - это будет вторая"); Это то, что я пробовал, но я думаю, что что-то должно быть перед дефисом в регулярном выражении –