const regex = /(?P<core1>(?i)[A-Z0-9]+)[\s]?((?i)out of|of|\/)[\s]?(?P<core2>(?i)[A-Z0-9]+)[\s]?(?:(?i)core[s]?|needle core[s]?)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?P<core1>(?i)[A-Z0-9]+)[\\s]?((?i)out of|of|\\\/)[\\s]?(?P<core2>(?i)[A-Z0-9]+)[\\s]?(?:(?i)core[s]?|needle core[s]?)', 'g')
const str = `ajnxaslndsa;ndaJDASDNsadnKDNadk;NADK'nadkAnaskdmaskdnajfbajfnakdnaj;knasjnakdna;jkdna;nda;dna;kdnas;dkns
so as sadasldka aldaskl . asdas asd 5,400 cgy
40.00 cgy
4 cgy
gleason score 6/10(4+3), = 7 )
1.1- 0.6,df
2,4-3,6 asdf 4+5+6
gleason's pattern: 2+3, 5
gleason score = 5(2+3)
score 1+2, (score 7)
gleason Dec 2011-23 jan
500,000.012 cgy sdfsfsodm sdfsd f
sdfsd afdas. s adasas dasd as
asdasdaskd askdm askdmas'ljdnas;das.ndaskjndajkndWJDNAksz
(?P<core1>(?i)[A-Z0-9]+)[\\s]?((?i)out of|of|\\/)[\\s]?(?P<core2>(?i)[A-Z0-9]+)[\\s]?(?:(?i)core[s]?|needle core[s]?)
(?P<core1>(?i)[A-Z0-9]+)[\\s]?((?i)core[s]? out of)[\\s]?(?P<core2>(?i)[A-Z0-9]+)
(?:(?i)involving)[\\s]?(?P<core1>(?i)[A-Z0-9]+)[\\s]?(?:(?i)core[s]?|needle core[s]?)
1 of 3 core
one of three cores
involving 1/2 cores
involving five of six cores
two of the cores
one of multiple cores
1 of multiple cores
two of 4 cores
5 of six cores
(1/8 needle cores)
(3/7 cores)
one out of six cores
two cores out of two
1 core out of 2
involving 1 core
involving two cores
gleason score 9, 4+5=9/10,
PSA = 27.60, 8 specimens
{0,1SDf00}
10% 20%
(?<=(?i)gleason)[\\w\\s\\p{P}\\=]*[^0-9\\.\\+]*\\s*\\K(\\d)\\s*\\+\\s*(\\d)(?=\\D)
(?<=(?i)gleason)[\\w\\s\\p{P}\\=]*[^0-9\\.\\+]*\\s*\\K(\\d)\\s*\\+\\s*(\\d)(?=\\D)
(?<=(?i)gleason)[\\w\\s\\p{P}\\=]*[^0-9\\.\\-]*\\s*\\K(\\d)\\s*\\-\\s*(\\d)(?=\\D\\-)
(?<=(?i)gleason)[\\w\\s\\p{P}\\=]*[^0-9\\.\\,\\#]*\\s*\\K(\\d)\\s*\\,\\s*(\\d)(?=\\D)
[\\w\\s\\p{P}\\=]*[^0-9\\.\\+]*\\s*\\K(\\d)\\s*\\+\\s*(\\d)(?=\\D)
[\\w\\s\\p{P}\\=]*[^0-9\\.\\-]*\\s*\\K(\\d)\\s*\\+\\s*(\\d)(?=\\D\\-)
(?<=[\\\\s])\\\\s*|^\\\\s+|\\\\s+\$
`;
// 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