Sample code for 30+ languages & platforms
B4X Requires Chilkat v11.1.0+

Regular Expression Replace Full Matches

See more Regular Expressions Examples

Demonstrates replacing the full matches of a regular expression.

Note: Chilkat uses PCRE2. See PCRE2 Regular Expressions
Also see: PCRE2 Performance

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

Dim subject As String = "John Anders, +_+_+ Mary Robins $$$$"
Dim pattern As String = "\w+\s+\w+"

Dim sb As ChilkatStringBuilder
sb.Initialize
sb.Append(subject)

Dim json As ChilkatJsonObject
json.Initialize
json.EmitCompact = False

Dim timeoutMs As Int = 2000
Dim numMatches As Int = sb.RegexMatch(pattern, json, timeoutMs)
If numMatches < 0 Then
    '  Probably an error in the regular expression.
    '  Suggestion: Use AI to help create and/or diagnose regular expressions.
    Log(sb.LastErrorText)
    Return
End If


'  Examine the matches:
Log(json.Emit)

'  {
'    "match": [
'      {
'        "group": [
'          {
'            "cap": "John Anders",
'            "idx": 0,
'            "len": 11
'          }
'        ]
'      },
'      {
'        "group": [
'          {
'            "cap": "Mary Robins",
'            "idx": 19,
'            "len": 11
'          }
'        ]
'      }
'    ]
'  }

Dim sbTemp As ChilkatStringBuilder
sbTemp.Initialize

Dim i As Int = 0
numMatches = json.SizeOfArray("match")
Do While i < numMatches

    json.I = i

    '  The full match is always in group 0.
    sbTemp.Clear
    json.StringOfSb("match[i].group[0].cap", sbTemp)

    '  Indicate that we wish to replace the full match with it's value converted to uppercase.
    sbTemp.ToUppercase
    json.UpdateSb("match[i].group[0].rep", sbTemp)

    i = i + 1
Loop

'  The JSON now has replacement strings:
Log(json.Emit)

'  {
'    "match": [
'      {
'        "group": [
'          {
'            "cap": "John Anders",
'            "idx": 0,
'            "len": 11,
'            "rep": "JOHN ANDERS"
'          }
'        ]
'      },
'      {
'        "group": [
'          {
'            "cap": "Mary Robins",
'            "idx": 19,
'            "len": 11,
'            "rep": "MARY ROBINS"
'          }
'        ]
'      }
'    ]
'  }

'  Call RegexReplace to update the StringBuilder with the replacements.
success = sb.RegexReplace(json)
If success = False Then
    Log(sb.LastErrorText)
    Return
End If


Log("Result after doing replacements:")
Log(sb.GetAsString)

'  Result after doing replacements:
'  JOHN ANDERS, +_+_+ MARY ROBINS $$$$