Регулярное выражение для определения отдельных котировок между двумя алфавитами [дубликат]

используете ли вы конфигурацию SMTP для отправки своей электронной почты? попробуйте вместо этого использовать phpmailer. вы можете загрузить библиотеку из https://github.com/PHPMailer/PHPMailer . Я создал электронную почту, отправив этот путь:

function send_mail($email, $recipient_name, $message='')
{
    require("phpmailer/class.phpmailer.php");

    $mail = new PHPMailer();

    $mail->CharSet="utf-8";
    $mail->IsSMTP();                                      // set mailer to use SMTP
    $mail->Host = "mail.example.com";  // specify main and backup server
    $mail->SMTPAuth = true;     // turn on SMTP authentication
    $mail->Username = "myusername";  // SMTP username
    $mail->Password = "p@ssw0rd"; // SMTP password

    $mail->From = "me@walalang.com";
    $mail->FromName = "System-Ad";
    $mail->AddAddress($email, $recipient_name);

    $mail->WordWrap = 50;                                 // set word wrap to 50 characters
    $mail->IsHTML(true);                                  // set email format to HTML (true) or plain text (false)

    $mail->Subject = "This is a Sampleenter code here Email";
    $mail->Body    = $message;
    $mail->AltBody = "This is the body in plain text for non-HTML mail clients";    
    $mail->AddEmbeddedImage('images/logo.png', 'logo', 'logo.png');
    $mail->addAttachment('files/file.xlsx');

    if(!$mail->Send())
    {
       echo "Message could not be sent. 

"; echo "Mailer Error: " . $mail->ErrorInfo; exit; } echo "Message has been sent"; }

0
задан JCWong 1 April 2016 в 07:07
поделиться

2 ответа

Вы можете использовать следующее регулярное выражение:

'[^']+'\s|'[^']+(')[^' ]+'

оно вернет 3 совпадения, и если группа захвата 1 участвовала в слове, это будет апостроф в слове:

  • 'foo'
  • 'может ' t'
  • 'don ' t'

demo

Как это работает:

  • '[^']+'\s ' соответствует апострофе [^']+, за которым следует хотя бы один символ, который не является апостроф ', за которым следует апостроф \s, а затем пробел
  • | или
  • '[^']+(')[^' ]+' ' соответствуют апострофу [^']+, за которым следует по крайней мере один характер, который не является апострофом ('), за которым следует апостроф, и захватывает его в группе захвата 1 [^' ]+, за которой следует по крайней мере один символ, который не является апострофом или пространством ', за которым следует апостроф
1
ответ дан Keith Hall 21 August 2018 в 05:27
поделиться

Я полагаю, вам нужно, чтобы символы «слова» появлялись до и после символа ', и это можно сделать с помощью границы слова:

\b'\b

См. регулярное выражение demo

Чтобы соответствовать только цитатам внутри букв , используйте

(?<=\p{L})'(?=\p{L})
(?<=[[:alpha:]])'(?=[[:alpha:]])
(?U)(?<=\p{Alpha})'(?=\p{Alpha})  # Java, double the backslashes in the string literal

или только ASCII

(?<=[a-zA-Z])'(?=[a-zA-Z])
2
ответ дан Wiktor Stribiżew 21 August 2018 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: