Это затронет только небольшую часть пользователей, но я бы хотел, чтобы это было документировано для этой небольшой части. Из-за этой проблемы этот член этой маленькой горстки потратил 6 часов на устранение неполадок с работающим PHP-почтовым скриптом.
Если вы собираетесь в университет, в котором работает XAMPP с сайта www.AceITLab.com, вы должны знать, что наш профессор не сказал нам: брандмауэр AceITLab (а не брандмауэр Windows) блокирует MercuryMail в XAMPP , Вам придется использовать альтернативный почтовый клиент, груша работает на нас. Вам нужно будет отправить учетную запись Gmail с низкими настройками безопасности.
Да, я знаю, это абсолютно бесполезно для электронной почты реального мира. Однако, из того, что я видел, академические настройки и реальный мир часто имеют очень мало общего.
Синтаксис в условной замене является
(?{GROUP_MATCHED?}REPLACEMENT_IF_YES:REPLACEMENT_IF_NO}
. {
и }
необходимы, чтобы избежать двусмысленности, когда вы имеете дело с группами выше 9 и с названными группами захвата.
Так как Notepad ++ использует Boost-Extended Format String Syntax
, см. эту документацию Boost :
Символ
?
начинает условное выражение, общий вид:
?Ntrue-expression:false-expression
, где
N
- десятичная цифра.Если под-выражение
N
было сопоставлено, тогдаtrue-expression
оценивается и отправляется на выход, в противном случаеfalse-expression
оценивается и отправляется на выход.Обычно вам необходимо окружить условное выражение скобками, чтобы предотвратить неоднозначность.
Например, строка формата
(?1foo:bar)
заменит каждое соответствие, найденное с помощьюfoo
, если под-выражение$1
было сопоставлено, а сbar
в противном случае.Для подвыражений с индекс больше 9 или для доступа к именованным под-выражениям:
?{INDEX}true-expression:false-expression
или
blockqu ote>
?{NAME}true-expression:false-expression
Итак, используйте
([a-zA-Z])([a-zA-Z])?/([a-zA-Z])([a-zA-Z])?
и замените на(?{2}$1$2:c$1)/(?{4}$3$4:c$3)
.Вторая проблема заключается в том, что вы поставили квант
?
внутри группы захвата, сделав шаблон внутри группы опциональным, но не вся группа . Это заставило группу всегда «участвовать в матче», и условие всегда было бы «истинным» (всегда соответствовало).?
должна количественно определять группу.