// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?mi)(aS)\s+((\`)?\w+(\`)?)(\s+|\,|(FRom\s+))").unwrap();
let string = " SELECT
a.WORKORDER_NO AS workOrderNo,
a.ORD_TYPE AS ordType,
a.ORD_NO AS ordNo,
a.RETURN_FLAG AS returnFlag,
a.AREA_ID AS areaId,
a.USER_NAME AS userName,
a.ADDR_DETAIL AS addrDetail,
a.HANDLE_STAFF_ID AS handleStaffId,
a.TAKE_STAFF_ID AS takeStaffId,
a.TAKE_TS AS takeTs,
a.RETURN_STAFF_ID AS returnStaffId,
a.RETURN_TS AS returnTs,
a.SUMMARY AS summary,
a.WO_TITLE AS woTitle,
a.INSTALL_FLAG AS installFlag,
a.START_TS AS startTs,
a.END_TS AS endTs,
a.GRID_ID AS gridId,
a.SCHEMA_ID AS schemaId,
a.PROJECT_ID AS projectId,
a.COMMENTS AS comments,
a.STATE AS `state`,
a.CREATE_USER AS createUser,
a.CREATE_DATE AS createDate,
a.MODIFY_USER AS modifyUser,
a.MODIFY_DATE AS modifyDate,
a.HANDLE_TEAM_ID AS handleTeamId,
a.PACKAGE_ID AS packageId,
a.PACKAGE_NAME AS packageName,
a.SUB_TYPE AS subType,
a.pre_work_order_no AS preWorkOrderNo,
a.IS_SYNC AS isSync,
a.IS_VIRTUAL AS isVirtual,
a.VIRTUAL_WORKORDER_NO AS virtualWorkOrderNo,
a.VIRTUAL_WORKORDER_RES_ID AS virtualWorkOrderResId,
a.IS_POLE AS isPole,
a.VER_NO AS verNo,
a.TASK_ID AS taskId,
b.USER_NAME AS userName
FROM oss_edn.edn_work_order a
LEFT JOIN oss_wfm.wfs_user_infor b ON a.HANDLE_STAFF_ID = b.USER_ID
WHERE a.WORKORDER_NO = :workOrderNo";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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 Rust, please visit: https://docs.rs/regex/latest/regex/