I am trying to pick up python and as someone coming from Javascript I haven't really been able to understand python's regex package re
What I am trying to do is something I have done in javascript to build a very very simple templating "engine" (I understand AST is the way to go for anything more complex):
In javascript:
var rawString = 
  "{{prefix_HelloWorld}}   testing this. {{_thiswillNotMatch}} \ 
  {{prefix_Okay}}";
rawString.replace(
   /\{\{prefix_(.+?)\}\}/g,
   function(match, innerCapture){
     return "One To Rule All";
});
In Javascript that will result in:
"One To Rule All testing this. {{_thiswillNotMatch}} One To Rule All"
And the function will get called twice with:
   innerCapture === "HelloWorld"
   match ==== "{{prefix_HelloWorld}}"
and:
   innerCapture === "Okay"
   match ==== "{{prefix_Okay}}"
Now, in python I have tried looking up docs on the re package
import re
Have tried doing something along the lines of:
match = re.search(r'pattern', string)
if match:
  print match.group()
  print match.group(1)
But it really doesn't make sense to me and doesn't work. For one, I'm not clear on what this group() concept means? And how am I to know if there is match.group(n)... group(n+11000)?
Thanks!
Use the translate() method to replace multiple different characters. You can create the translation table specified in translate() by the str. maketrans() .
No, Python cannot replace JavaScript because: (FRONT-END)JavaScript is browser-native and Python is not. (BACK-END) neither JavaScript nor Python is web-native. So, they will work in parallel.
Python String replace() MethodThe replace() method replaces a specified phrase with another specified phrase. Note: All occurrences of the specified phrase will be replaced, if nothing else is specified.
The replace() in Python returns a copy of the string where all occurrences of a substring are replaced with another substring.
Python's re.sub function is just like JavaScript's String.prototype.replace:
import re
def replacer(match):
    return match.group(1).upper()
rawString = "{{prefix_HelloWorld}}   testing this. {{_thiswillNotMatch}} {{prefix_Okay}}"
result = re.sub(r'\{\{prefix_(.+?)\}\}', replacer, rawString)
And the result:
'HELLOWORLD   testing this. {{_thiswillNotMatch}} OKAY'
As for the groups, notice how your replacement function accepts a match argument and an innerCapture argument. The first argument is match.group(0). The second one is match.group(1).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With