我正在练习正则表达式选择以从文本中选择一些模式。我可以很容易地选择一个模式但是因为我是新手,我发现很难选择除了描述的模式之外的所有其他文本。
例如: \ d {0} [0] \ d {0,1} [56789] \ d {8} 此模式以我想要的模式方式获取数字。但我怎样才能得到反向选择?我是说如何选择除匹配表达式之外的整个文本?
答案 0 :(得分:0)
例如,如果模式为\d
:
console.log( 'a1!'.replace(/\d/, '') ) // "a!"
console.log( 'a1!'.split(/\d/) ) // ["a", "!"]
console.log( 'a1!'.match(/(.*?)\d(.*)/) ) // ["a1!", "a", "!"]
console.log( /(.*?)\d(.*)/.exec('a1!') ) // ["a1!", "a", "!"]

.*
尽可能多地匹配任何字符
.*?
尽可能少地匹配任何字符
()
捕获组中的匹配
.match
和.exec
结果中的第一个结果是整个匹配,其后的两个结果是捕获的组(.*?)
和(.*)
答案 1 :(得分:0)
如果您想查看没有数字的字符串,只需更换数字
即可
没有。如果你想看到这一切,只需将数字与中心分开
休息,使用下面的正则表达式。
选择所有内容,然后排除您不想要的内容
示例/(.*?)(\d{0}[0]\d{0,1}[56789]\d{8}|$)/g
将获得所有内容,
其中捕获组1包含的不是你的正则表达式(你不想要的)。
var str = 'hello world 088111 this is a 0592222 test';
console.log( str.replace( /(?=.)(.*?)(0[5-9]{2}\d+|$)/g, '$1') );
输出:Hello world this is a test