title: Partial String Replacement using PowerShell
body: <h3>Problem</h3>
  
  <p>I am working on a script that has a user provide a specific IP address and I want to mask this IP in some fashion so that it isn't stored in the logs. My problem is, that I can easily do this when I know what the first three values of the IP typically are; however, I want to avoid storing/hard coding those values into the code to if at all possible. I also want to be able to replace the values even if the first three are unknown to me.</p>
  
  <p>Examples:</p>
  
  <pre><code>10.11.12.50 would display as XX.XX.XX.50
  10.12.11.23 would also display as XX.XX.XX.23
  </code></pre>
  
  <p>I have looked up partial string replacements, but none of the questions or problems that I found came close to doing this. I have tried doing things like:</p>
  
  <pre><code># This ended up replacing all of the numbers
  $tempString = $str -replace '[0-9]', 'X'
  </code></pre>
  
  <p>I know that I am partway there, but I aiming to only replace only the first 3 sets of digits so, basically every digit that is before a '.', but I haven't been able to achieve this.</p>
  
  <h3>Question</h3>
  
  <p>Is what I'm trying to do possible to achieve with PowerShell? Is there a best practice way of achieving this?</p>