The format is like so:

```
[ ] Checkbox 1
[ ] Checkbox 2
[ ] Checkbox 3
```

*There's a couple ways you could approach this but I've gone with regular expression.*

The pattern to match this is: `((\[[ x]].*?(\r\`

The format is like so:

```
[ ] Checkbox 1
[ ] Checkbox 2
[ ] Checkbox 3
```

*There's a couple ways you could approach this but I've gone with regular expression.*

The pattern to match this is: `((\[[ x]].*?(\r\n|\r|\n)){INDEX})\[[ x]](.*)`

Where INDEX is the nth we want to match -1. If we want the first, the index would be 0. 2nd would be 1, 3rd would be 2 etc.

E.g. to match the 2nd, the INDEX would be 1: `((\[[ x]].*?(\r\n|\r|\n)){1})\[[ x]](.*)`

Then we can use `$1[x]$4`

as the replacement.

Replacing the 2nd would result in:

```
[ ] Checkbox 1
[x] Checkbox 2
[ ] Checkbox 3
```

But let's break this pattern down. The first half of this is in brackets representing the first captured group as $1 for the replace statement. In this we have `\[[ x]]`

which matches square brackets an empty space or x inside, then `.*?`

matches any content after it till the end of the line, followed by `(\r\n|\r|\n)`

which detects the end of the line. This then get's repeated for the INDEX `{INDEX}`

or `{1}`

for matching the 2nd checkbox. The INDEX is 1 less than the value we are looking for as it starts at 0 rather than 1. This ends the first capturing group. We then we look for the checkbox again `\[[ x]]`

as this is the one we will be replacing and grab all the content after it in a last capturing group which in the replace is $4.

Try this out at http://regexr.com/3dqac

Use the original empty checkboxes text above and the regex, then click to replace and enter the replacement script. Then try changing the index between 0, 1 and 2 to see if live replace whichever checkbox.