Regular Expressions 101

Save & Share

  • Regex Version: ver. 16
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression
No Match

/
/
m

Test String

Substitution

Processing...

Code Generator

Generated Code

// 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"(?m)(?:fieldControlData\[?\'?\!?\.?)(\w*)(?:\'\])\!?\??\.?").unwrap(); let string = "<dxi-column [filterType]=\"'include'\" [dataField]=\"'Version'\" [caption]=\"fieldControlData['Version']?.CaptionDescription\" [visible]=\"fieldControlData['Version']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'DeptName'\" [caption]=\"fieldControlData['DeptName']?.CaptionDescription\" [visible]=\"fieldControlData['DeptName'].visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"></dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'DivName'\" [caption]=\"fieldControlData['DivName']?.CaptionDescription\" [visible]=\"fieldControlData['DivName']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [groupIndex]=\"0\"></dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'OwnerName'\" [caption]=\"fieldControlData['OwnerName']?.CaptionDescription\" [visible]=\"fieldControlData['OwnerName']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"></dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'CentralizedDivName'\" [caption]=\"fieldControlData['CentralizedDivName']?.CaptionDescription\" [visible]=\"fieldControlData['CentralizedDivName']?.visible && currentPlanVersion.Code === '2'\" [minWidth]=\"50\" [width]=\"150\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'JobCentralized'\" [caption]=\"fieldControlData['JobCentralized']?.CaptionDescription\" [visible]=\"fieldControlData['JobCentralized']?.visible && currentPlanVersion.Code === '2'\" [minWidth]=\"50\" [width]=\"120\" [alignment]=\"'center'\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"></dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'JobCodeName'\" [caption]=\"fieldControlData['JobCode']?.CaptionDescription\" [visible]=\"fieldControlData['JobCode']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [groupIndex]=\"1\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'JobControlPoolName'\" [caption]=\"fieldControlData['JobControlPoolName']?.CaptionDescription\" [visible]=\"fieldControlData['JobControlPoolName']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'CatName'\" [caption]=\"fieldControlData['CatName']?.CaptionDescription\" [visible]=\"fieldControlData['CatName']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'BudgetItemName'\" [caption]=\"fieldControlData['BudgetItemName']?.CaptionDescription\" [visible]=\"fieldControlData['BudgetItemName']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'AssetName'\" [caption]=\"fieldControlData['AssetName']?.CaptionDescription\" [visible]=\"fieldControlData['AssetName']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'StartDate'\" [caption]=\"fieldControlData['StartDate']?.CaptionDescription\" [visible]=\"fieldControlData['StartDate']?.visible\" [showWhenGrouped]=\"true\" [dataType]=\"'date'\" [format]=\"'yyyy-MM-dd'\" [alignment]=\"'center'\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'EndDate'\" [caption]=\"fieldControlData['EndDate']?.CaptionDescription\" [visible]=\"fieldControlData['EndDate']?.visible\" [showWhenGrouped]=\"true\" [dataType]=\"'date'\" [format]=\"'yyyy-MM-dd'\" [alignment]=\"'center'\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'TargetMarginPercent'\" [caption]=\"fieldControlData['TargetMarginPercent']?.CaptionDescription\" [visible]=\"fieldControlData['TargetMarginPercent']?.visible\" [showWhenGrouped]=\"true\" [dataType]=\"'number'\" [format]=\"'#,##0.00 %'\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'IsCustDecision'\" [caption]=\"fieldControlData['IsCustDecision']?.CaptionDescription\" [visible]=\"fieldControlData['IsCustDecision']?.visible\" [showWhenGrouped]=\"true\" [dataType]=\"'boolean'\" [trueText]=\"'Yes ใช่'\" [falseText]=\"'No ไม่ใช่'\" [alignment]=\"'center'\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [cellTemplate]=\"'yesnoCellTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'CustCommitmentPercent'\" [caption]=\"fieldControlData['CustCommitmentPercent']?.CaptionDescription\" [visible]=\"fieldControlData['CustCommitmentPercent']?.visible\" [showWhenGrouped]=\"true\" [dataType]=\"'number'\" [format]=\"'#,##0.00 %'\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'BudgetDetail'\" [caption]=\"fieldControlData['BudgetDetail']?.CaptionDescription\" [visible]=\"fieldControlData['BudgetDetail']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [width]=\"200\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'CostElementName'\" [caption]=\"fieldControlData['CostElementName']?.CaptionDescription\" [visible]=\"fieldControlData['CostElementName']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'WorkProgramName'\" [caption]=\"fieldControlData['WorkProgramID']?.CaptionDescription\" [visible]=\"fieldControlData['WorkProgramID']?.visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'InvestmentTypeCodeName'\" [caption]=\"fieldControlData['InvestmentTypeCodeName'].CaptionDescription\" [visible]=\"fieldControlData['InvestmentTypeCodeName'].visible\" [showWhenGrouped]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ActualAmount'\" [caption]=\"fieldControlData['ActualAmount']?.CaptionDescription\" [visible]=\"fieldControlData['ActualAmount']?.visible\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'TotalAmount'\" [caption]=\"fieldControlData['TotalAmount']?.CaptionDescription\" [visible]=\"fieldControlData['TotalAmount']?.visible\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [fixedPosition]=\"'right'\" [fixed]=\"true\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'TotalAmountLastYear'\" [caption]=\"fieldControlData?.TotalAmountLastYear?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanAmount'\" [caption]=\"fieldControlData['PlanAmount']?.CaptionDescription\" [visible]=\"fieldControlData['PlanAmount']?.visible\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanAmountLastYear'\" [caption]=\"fieldControlData?.PlanAmountLastYear?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM1'\" [caption]=\"fieldControlData['PlanM1']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM2'\" [caption]=\"fieldControlData['PlanM2'].CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM3'\" [caption]=\"fieldControlData['PlanM3']!.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM4'\" [caption]=\"fieldControlData['PlanM4']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM5'\" [caption]=\"fieldControlData['PlanM5']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM6'\" [caption]=\"fieldControlData['PlanM6']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM7'\" [caption]=\"fieldControlData['PlanM7']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM8'\" [caption]=\"fieldControlData['PlanM8']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM9'\" [caption]=\"fieldControlData['PlanM9']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM10'\" [caption]=\"fieldControlData['PlanM10']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM11'\" [caption]=\"fieldControlData['PlanM11']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'PlanM12'\" [caption]=\"fieldControlData['PlanM12']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'CommitAmount'\" [caption]=\"fieldControlData['CommitAmount']?.CaptionDescription\" [visible]=\"fieldControlData['CommitAmount']?.visible\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM1'\" [caption]=\"fieldControlData['ComM1']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM2'\" [caption]=\"fieldControlData['ComM2']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM3'\" [caption]=\"fieldControlData['ComM3']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM4'\" [caption]=\"fieldControlData['ComM4']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM5'\" [caption]=\"fieldControlData!.ComM5?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM6'\" [caption]=\"fieldControlData['ComM6']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM7'\" [caption]=\"fieldControlData['ComM7']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM8'\" [caption]=\"fieldControlData['ComM8']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM9'\" [caption]=\"fieldControlData['ComM9']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM10'\" [caption]=\"fieldControlData['ComM10']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM11'\" [caption]=\"fieldControlData['ComM11']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'ComM12'\" [caption]=\"fieldControlData.ComM12']?.CaptionDescription\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [visible]=\"false\"> <dxo-format type=\"fixedPoint\" [precision]=\"2\"> </dxo-format> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'Remark'\" [caption]=\"fieldControlData?.'Remark']?.CaptionDescription\" [visible]=\"fieldControlData['Remark']?.visible\" [width]=\"120\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"></dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'Message'\" [minWidth]=\"110\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" [caption]=\"fieldControlData['Message']?.CaptionDescription\" [visible]=\"fieldControlData['Message']?.visible\"></dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'SubmitSAPDate'\" [caption]=\"fieldControlData['SubmitSAPDate']?.CaptionDescription\" [visible]=\"fieldControlData['SubmitSAPDate']?.visible\" [showWhenGrouped]=\"true\" [dataType]=\"'date'\" [format]=\"'yyyy-MM-dd'\" [alignment]=\"'center'\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> </dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'Comment'\" [caption]=\"fieldControlData['CommentReject']?.CaptionDescription\" [visible]=\"fieldControlData['CommentReject']?.visible\" [width]=\"200\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"></dxi-column> <dxi-column [filterType]=\"'include'\" [dataField]=\"'StateInfo'\" [caption]=\"fieldControlData['StateInfo']?.CaptionDescription\" [visible]=\"fieldControlData['StateInfo']?.visible\" [alignment]=\"'center'\" [width]=\"100\" [cellTemplate]=\"'stateCellTemplate'\" [fixedPosition]=\"'right'\" [fixed]=\"true\" [headerCellTemplate]=\"'defaultHeaderTemplate'\"> <div *dxTemplate=\"let item of 'stateCellTemplate'\"> <span>{{ item.data.StateInfo | emptyValue }}</span> </div> </dxi-column> <!-- <dxi-column [filterType]=\"'include'\" [dataField]=\"'StatusName'\" [caption]=\"fieldControlData['StatusName']?.CaptionDescription\" [visible]=\"fieldControlData['StatusName']?.visible\" [alignment]=\"'center'\" [width]=\"110\" [cellTemplate]=\"'statusCellTemplate'\" [fixed]=\"true\" [fixedPosition]=\"'right'\" [headerCellTemplate]=\"'defaultHeaderTemplate'\" > <div *dxTemplate=\"let item of 'statusCellTemplate'\"> <span class=\"badge-status badge wd-90\" [ngClass]=\"item.data.StatusName | statusClass\">{{ item.data.StatusName }}</span> </div> </dxi-column> --> <!-- [visible]=\"permissionActions[PermissionAction.Edit]\" --> <dxi-column [filterType]=\"'include'\" [alignment]=\"'center'\" [width]=\"100\" [cellTemplate]=\"'actionCellTemplate'\" [allowGrouping]=\"false\" [allowHeaderFiltering]=\"false\" [allowFiltering]=\"false\" [allowHiding]=\"false\" [allowSorting]=\"false\" [allowSearch]=\"false\" [showInColumnChooser]=\"false\" [fixed]=\"true\" [fixedPosition]=\"'right'\"> <div *dxTemplate=\"let item of 'actionCellTemplate'\"> <div class=\"mx-1\"> <button *ngIf=\"item.data.CanEdit && permissionActions[PermissionAction.Edit]\" class=\"btn btn-action btn-dark p-1 mr-2 no-box-shadow bs-tooltip\" title=\"Edit Plan\" (click)=\"editPlanClick($event, item.data)\"> <i class=\"fa-solid fa-edit fa-lg\"></i> </button> <button *ngIf=\"item.data.CanEdit && permissionActions[PermissionAction.Delete]\" class=\"btn btn-danger btn-action p-1 mr-2 no-box-shadow bs-tooltip\" title=\"Delete Plan\" (click)=\"deletePlanItemClick(item.data)\"> <i class=\"fa-solid fa-trash-can fa-lg\"></i> </button> </div> </div> </dxi-column>"; let substitution = "fieldControlerData?.$1?."; // result will be a String with the substituted value let result = regex.replace(string, substitution); println!("{}", 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 Rust, please visit: https://docs.rs/regex/latest/regex/