#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)l4.2"
Local $sString = "// Lab 4.2" & @CRLF & _
"#include <iostream>" & @CRLF & _
"#include <string>" & @CRLF & _
"" & @CRLF & _
"using namespace std;" & @CRLF & _
"" & @CRLF & _
"string s1, s2;" & @CRLF & _
"" & @CRLF & _
"int checkChar() {" & @CRLF & _
" int i, len;" & @CRLF & _
"" & @CRLF & _
" len = s2.length();" & @CRLF & _
" for (i = 0; i < len; i++)" & @CRLF & _
" if (s2[i] - 48 < 0 || s2[i] - 48 > 9)" & @CRLF & _
" return 0;" & @CRLF & _
"" & @CRLF & _
" return 1;" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"void inputString() {" & @CRLF & _
" cout << " - Nhap chuoi S1: ";" & @CRLF & _
" getline(cin, s1);" & @CRLF & _
" " & @CRLF & _
" while (1) {" & @CRLF & _
" cout << " - Nhap chuoi S2: ";" & @CRLF & _
" getline(cin, s2);" & @CRLF & _
"" & @CRLF & _
" if (!checkChar())" & @CRLF & _
" cout << " => " << "Input Validation" << endl << endl;" & @CRLF & _
" else" & @CRLF & _
" break;" & @CRLF & _
" }" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"int checkNumber() {" & @CRLF & _
" int i, len;" & @CRLF & _
" len = s1.length();" & @CRLF & _
"" & @CRLF & _
" for (i = 0; i < len; i++)" & @CRLF & _
" if (s1[i] - 48 >= 0 && s1[i] - 48 <= 9)" & @CRLF & _
" return 1;" & @CRLF & _
"" & @CRLF & _
" return 0;" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"int checkSDTMobifone() {" & @CRLF & _
" int i, len;" & @CRLF & _
" len = s2.length();" & @CRLF & _
"" & @CRLF & _
" if (len==10 && s2[0] - 48 == 0 && s2[1] - 48 == 9 && s2[2] - 48 == 0) {" & @CRLF & _
" for (i = 3; i < 10; i++) {" & @CRLF & _
" if (s2[i] - 48 < 0 || s2[i] - 48 > 9)" & @CRLF & _
" return 0;" & @CRLF & _
" }" & @CRLF & _
" return 1;" & @CRLF & _
" }" & @CRLF & _
" else" & @CRLF & _
" return 0;" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"int checkSubString() {" & @CRLF & _
" int i, j;" & @CRLF & _
" int len, len_s1, len_s2, flag;" & @CRLF & _
" char temp;" & @CRLF & _
"" & @CRLF & _
" len_s1 = s1.length();" & @CRLF & _
" len_s2 = s2.length();" & @CRLF & _
"" & @CRLF & _
" if (len_s2 == 0)" & @CRLF & _
" return 1;" & @CRLF & _
"" & @CRLF & _
" if (len_s1 >= len_s2) {" & @CRLF & _
" for (i = 0; i <= len_s1 - len_s2; i++) {" & @CRLF & _
" flag = 1;" & @CRLF & _
" for (j = 0; flag&&j < len_s2; j++) {" & @CRLF & _
" if (s1[i + j] != s2[j])" & @CRLF & _
" flag = 0;" & @CRLF & _
" }" & @CRLF & _
" if (flag)" & @CRLF & _
" return 1;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" " & @CRLF & _
" return 0;" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"string addString(){" & @CRLF & _
" string s3;" & @CRLF & _
" int i, len_s1, len_s2, len;" & @CRLF & _
"" & @CRLF & _
" len_s1 = s1.length();" & @CRLF & _
" len_s2 = s2.length();" & @CRLF & _
" len = len_s1 + len_s2;" & @CRLF & _
"" & @CRLF & _
" for (i = 0; i < len; i++) {" & @CRLF & _
" if (i < len_s1)" & @CRLF & _
" s3 += s1[i];" & @CRLF & _
" else" & @CRLF & _
" s3 += s2[i - len_s1];" & @CRLF & _
" }" & @CRLF & _
"" & @CRLF & _
" return s3;" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"void insertString(string s3) {" & @CRLF & _
" string str_Insert = "Buffer_Overflow";" & @CRLF & _
" char after;" & @CRLF & _
" int i, len, flag;" & @CRLF & _
"" & @CRLF & _
" len = s3.length();" & @CRLF & _
"" & @CRLF & _
" cout << " - Chuoi S3: " << s3 << endl;" & @CRLF & _
"" & @CRLF & _
" cout << " - Ban muon them vao sau ky tu nao: ";" & @CRLF & _
" cin >> after;" & @CRLF & _
"" & @CRLF & _
" cout << endl << " => ";" & @CRLF & _
"" & @CRLF & _
" flag = 0;" & @CRLF & _
" for (i = 0; i < len; i++) {" & @CRLF & _
" if (s3[i] != after) {" & @CRLF & _
" cout << s3[i];" & @CRLF & _
" }" & @CRLF & _
" else {" & @CRLF & _
" cout << after << str_Insert;" & @CRLF & _
" flag++;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
"" & @CRLF & _
" if (!flag)" & @CRLF & _
" cout << str_Insert << endl;" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"int main() {" & @CRLF & _
"" & @CRLF & _
" string s1, s2, s3;" & @CRLF & _
" // Cau 1" & @CRLF & _
" cout << endl << "Cau 1: " << endl;" & @CRLF & _
" inputString();" & @CRLF & _
"" & @CRLF & _
" // Cau 2" & @CRLF & _
" cout << endl << "Cau 2: " << endl;" & @CRLF & _
" if (checkNumber())" & @CRLF & _
" cout << " - Chuoi S1 co chu so" << endl;" & @CRLF & _
" else" & @CRLF & _
" cout << " - Chuoi S1 khong co chu so" << endl;" & @CRLF & _
"" & @CRLF & _
" // Cau 3" & @CRLF & _
" cout << endl << "Cau 3: " << endl;" & @CRLF & _
" if (checkSDTMobifone())" & @CRLF & _
" cout << " - Chuoi S2 la SDT mang Mobifone" << endl;" & @CRLF & _
" else" & @CRLF & _
" cout << " - Chuoi S2 khong la SDT mang Mobifone" << endl;" & @CRLF & _
"" & @CRLF & _
" // Cau 4" & @CRLF & _
" cout << endl << "Cau 4: " << endl;" & @CRLF & _
" if (checkSubString())" & @CRLF & _
" cout << " - Chuoi S2 la tap con cua chuoi S1" << endl;" & @CRLF & _
" else" & @CRLF & _
" cout << " - Chuoi S2 khong la tap con cua chuoi S1" << endl;" & @CRLF & _
"" & @CRLF & _
" // Cau 5" & @CRLF & _
" cout << endl << "Cau 5: " << endl;" & @CRLF & _
" cout << " - Chuoi S3 = S1 + S2: ";" & @CRLF & _
" s3 = addString();" & @CRLF & _
" cout << s3 << endl;" & @CRLF & _
"" & @CRLF & _
" // Cau 6" & @CRLF & _
" cout << endl << "Cau 6: " << endl;" & @CRLF & _
" insertString(s3);" & @CRLF & _
" cout << endl << endl;" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
" //system("pause");" & @CRLF & _
" " & @CRLF & _
" return 0;" & @CRLF & _
"}" & @CRLF & _
""
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH)
Local $aFullArray[0]
For $i = 0 To UBound($aArray) -1
_ArrayConcatenate($aFullArray, $aArray[$i])
Next
$aArray = $aFullArray
; Present the entire match result
_ArrayDisplay($aArray, "Result")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm