我有一个文件,其列表如下所示:
$ABC02
我希望所有那些不是02
的字符串。这是代码的一部分,在此步骤之前,我将字符串ABC记录在一个变量中,并将数字02记录在其他变量中。我基本上希望所有那些以ABC开头的条目,并以/^\$ABC[^02]$/
之外的2位数字结尾。
我尝试了这个但是没有用:
requestAnimationFrame
在这种情况下使用的正确正则表达式是什么?
答案 0 :(得分:2)
你的正则表达式目前所做的是找到" $ ABC"接着是一位数。您需要将[^02]
拆分为匹配的2个字符。
/^\$ABC[^0][^2]$/
...但是...也会匹配末尾有非数字的字符串。所以,而不是使用你不想找到的东西 - 放入你想要找到的东西。
/^\$ABC([1-9][0-9]|0[013-9])$/
这将查找1到9后跟任何数字或0后跟除2之外的任何数字。如果您不想要(...)
,可以将(?:...)
替换为var table = $('#example').DataTable({
'ajax': 'https://api.myjson.com/bins/1us28',
'columnDefs': [
{
'targets': 0,
'checkboxes': {
'selectRow': true
}
}
],
'select': {
'style': 'multi'
},
'order': [[1, 'asc']]
});
捕获组。
答案 1 :(得分:2)
请注意,[^02]
是一个否定的字符类,它匹配0
和2
以外的任何字符,并且不必是数字,BTW。
您可以在(?!02$)
之后使用C
否定前瞻,以避免匹配以02
结尾的字符串,但以任何其他数字结尾(包括0210
等):
/^\$ABC(?!02$)[0-9]+$/
如果您不希望在C
* 02
开头后匹配数字,请从前瞻中移除$
:
/^\$ABC(?!02)[0-9]+$/
答案 2 :(得分:0)
看起来您只需要从文件中删除一个特定的行。您可以简单地使用该语言来丢弃给定的字符串,而不是编写匹配$ABC
后跟除02
之外的任何内容的花哨正则表达式模式。像print if not /\$ABC02/
在Perl单行命令中,检查整行是否与该值匹配,如果是,则忽略它
perl -ne 'print unless /^\$ABC02$/' myfile