VSCode regex find & replace submatch math?

前端 未结 6 1915
栀梦
栀梦 2020-11-30 18:34
%s@{fileID: \\(213[0-9]*\\)@\\=\'{fileID: \'.(submatch(1)-1900)@

I am using this regex search and replace command in vim to subtract a constant fro

相关标签:
6条回答
  • 2020-11-30 18:38

    Another simple example:

    Search: style="(.+?)"
    Replace: css={css`$1`}
    

    Useful for converting HTML to JSX with emotion/css!

    0 讨论(0)
  • 2020-11-30 18:44

    For beginners, the accepted answer is correct, but a little terse if you're not that familiar with either VSC or Regex.

    So, in case this is your first contact with either:

    To find and modify text,

    1. In the "Find" step, you can use regex with "capturing groups," e.g. I want to find (group1) and (group2), using parentheses. This would find the same text as I want to find group1 and group2, but with the difference that you can then reference group1 and group2 in the next step:

    2. In the "Replace" step, you can refer to the capturing groups via $1, $2 etc, so you could change the sentence to I found $1 and $2 having a picnic, which would output I found group1 and group2 having a picnic.

    Notes:

    • Instead of just a string, anything inside or outside the () can be a regular expression.

    • $0 refers to the whole match

    0 讨论(0)
  • 2020-11-30 18:47

    Given a regular expression of (foobar) you can reference the first group using $1 and so on if you have more groups in the replace input field.

    0 讨论(0)
  • 2020-11-30 18:52

    To augment Benjamin's answer with an example:

    Find        Carrots(With)Dip(Are)Yummy
    Replace     Bananas$1Mustard$2Gross
    Result      BananasWithMustardAreGross
    

    Anything in the parentheses can be a regular expression.

    0 讨论(0)
  • 2020-11-30 18:55

    In my case $1 was not working, but $0 works fine for my purpose.

    In this case I was trying to replace strings with the correct format to translate them in Laravel, I hope this could be useful to someone else because it took me a while to sort it out!

    Search: (?<=<div>).*?(?=</div>)
    Replace: {{ __('$0') }}
    

    Regex Replace String for Laravel Translation

    0 讨论(0)
  • 2020-11-30 19:02

    Just to add another example:

    I was replacing src attr in img html tags, but i needed to replace only the src and keep any text between the img declaration and src attribute.

    I used the find+replace tool (ctrl+h) as in the image:

    0 讨论(0)
提交回复
热议问题