假设我们在文本文件中有一个字符串"test123"
。
我们如何只切出"test12"
,或者说"test123"
后面还有其他垃圾,例如test123x19853
,而我们想切出"test123x"
?
我尝试使用grep -a "test123.\{1,4\}" testasd.txt
等等,但是无法正确执行。
我也找了个例子,但没有找到我想要的东西。
答案 0 :(得分:1)
expr:
var nums = [];
$('#table_serv tr td.serv-nomer').each(function (elem, ind) {
if(elem > 0 ) {
nums[parseInt($(this).text())] = elem;
$(this).text(elem);
}
});
答案 1 :(得分:0)
如果您对awk
感到满意,请尝试执行以下操作(这不会查找连续出现的字母,然后查找连续出现的数字,请不要将其限制为4或5)。
echo "test123x19853" | awk 'match($0,/[a-zA-Z]+[0-9]+/){print substr($0,RSTART,RLENGTH)}'
如果您想在连续第1次出现字母后只查找1-4位数字,然后尝试遵循(我的awk
是旧版本,因此可以使用--re-interval
将其删除,以防您拥有最新的版本)。
echo "test123x19853" | awk --re-interval 'match($0,/[a-zA-Z]+[0-9]{1,4}/){print substr($0,RSTART,RLENGTH)}'
答案 2 :(得分:0)
您需要的是-o
,仅打印出匹配的内容:
$ echo "test123x19853"|grep -o "test.\{1,4\}"
test123x
$ echo "test123x19853"|grep -oP "test.{1,4}"
test123x
-o,--only-matching仅显示匹配PATTERN的行的一部分