const regex = /^channel = "(.+)"$/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^channel = "(.+)"$', 'gm')
const str = `# If you wish to update this file, please read
# <https://thebevyflock.github.io/bevy_cli/contribute/linter/how-to/upgrade-rust-toolchain.html>.
[toolchain]
# Writing custom lints requires using nightly Rust. We pin to a specific version of nightly version
# so that builds are reproducible. Note that we use the Regex \`^channel = "(.+)"\$\` to match this
# line, so be wary when changing its formatting.
channel = "nightly-2025-06-26"
# These components are required to use \`rustc\` crates. Note that if you change these, you may need
# to also update \`bevy_lint/action.yml\`.
components = ["rustc-dev", "llvm-tools-preview"]
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions