Ⅰ shell 正则表达式问题
问题描述应该是这样的:"去除多余的双引号,即,对多个连续的双引号,只保留一个"。
因此,这样就可以了:
sed-r's/"+/"/g'file.txt
正则中,+表示重复前面一个字符1次或以上(至少一次)。
当然,也可以写为:
sed-r's/"{2,}/"/g'file.txt
{2,}表示2次或以上。这样,出现1次的就可以不用处理。
实测结果如下:
Ⅱ 如何用正则表达式 过滤 特定内容
正则表达式:^\d+(\.\d+)?$
你可以用这个正则表达式匹配输入的字符,如果不匹配说明是非法的字母和字符.
Ⅲ 正则表达式过滤指定位置的字符
好了,又又一次回复,不好意思,我是新手,慢慢一点一点深入
(<TD[^>]*>)[ s]*<P[^>]*>([^>]*)</P>s?(</TD>)
这正则表达式完全搞定了,用$1$2$3替换
re.Pattern="(<TD[^>]*>)[ s]*<P[^>]*>([^>]*)</P>s?(</TD>)"
Data=re.Replace(Data,"$1$2$3")
请先备份,以防意外。
=================================================================
又一次回复,嘿嘿,写出一个,但要有条件:要删的P标签要和</TD>同一行,并且在前面。(只能想到这个笨方法了,靠</TD>来辨别是不是在TD里)
</?P[^>]*>(?=.*</TD>)
请先备份,否则有意外,别怪我。
========================================================
不知怎的不支持(?<=exp),有点难缠。恕小生学艺未精。
期待高手,关注中……
========================================================
处理这些固定的字符串用Replace就好了
a="<TDwidth=69rowSpan=2><Pclass=MsoNormal>日期</P></TD>"
a=Replace(Replace(a,"<Pclass=MsoNormal>",""),"</P>","")
MsgBoxa
=========如果你非要用正则表达式,也拿你没办法===========
a="<TDwidth=69rowSpan=2><Pclass=MsoNormal>日期</P></TD>"
Setre=CreateObject("VBScript.RegExp")
re.IgnoreCase=False'是否区分大小写
re.Global=True'只匹配搜索到的第一个还是全部
re.Pattern="</?P[^>]*>"'定义正则表达式,不管P标签里面等于什么鬼都好。
a=re.Replace(a,"")'用空字符""替换匹配到的
MsgBoxa
Ⅳ 在linux的shell语言中,怎样用正则表达式来截取字符串
perl -le 'print $_ for split /\w=/, "a=1 b=2 c=3"'
Ⅳ 如何用正则表达式过滤除数字以外的其他字符
JAVA可以这样写呢回
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class JavaBase {
public static void main(String[] args) {
String str = "<a href=\"../download/20080601.pdf\">download</a>";
String regEx = "[^答0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
String str1 = m.replaceAll("").trim();
System.out.println(str1);
}
}
-------------
20080601
Ⅵ shell编程怎么抽取匹配正则表达式的字符串
a=$( expr 'helloworld20140501.txt' : '.*\([0-9]\{8\}\).*' )
echo $a
linux shell 中可以将命令的结果赋值给变量,$(命令)这种格式将返回命令执行后的结果字符串专
上面命令执行后,变属量a的值是20140501
a=`echo 'helloworld20140501.txt'|sed 's/.*\([0-9]\{8\}\).*/\1/'`
这个命令作用也是一样,变量a被赋值为20140501
Ⅶ 如何使用 awk 和正则表达式过滤文本或文件中的字符串
awk默认使用空格做为分隔符,可以看到,我输出了"a b c d e" 每个字母之间都有个空格
刚好我可以利用awk默认使用空格作为分隔符这一特点来进行分割过滤
这样过滤出来的第一列就是a,第二列就是b......以此类推。
如果有复杂的、难处理的可以继续追问,我也很喜欢解决这些问题
Ⅷ 正则表达式\r\是什么意思
\r--Carriage Return (回车)
Ⅸ 如何用python正则表达式去除\r和\n字符
importre
a='abcdeef '
b=re.sub(' ','',a)#直接用空字符串替代
##b为'abcdeef'
Ⅹ 正则表达式过滤特殊字符
正则表达式里面你带了逗号,应该这样写
[。~!@#$%\^\+\*&\\\/\?\|:\.<>{}()';="]
有些符号只有少数几个符号需要转义,而且不用打逗号,打了逗号就相当于把逗号也过滤掉了