A. java正则表达式判断 只能包含汉字、英文、“_”和数字 ,正则该怎么写呢
正则表达式:[\u4e00-\u9fa5]*|\w*|\d*|_*
代码如下:
@Test
public void test1(){
//匹配正则表达式表达式
String str = "[\u4e00-\u9fa5]*|\w*|\d*|_*";
Pattern pattern = Pattern.compile(str);
//要匹配的字符串
String mStr = "还有多远_344fjdk";
System.out.println("测试的字符串:"+mStr);
Matcher m = pattern.matcher(mStr);
//如果匹配到了
if(m.find()){
System.out.println("匹配内容:"+m.group());
}
}
程序运行结果:
(1)java正则表达式中文匹配扩展阅读
匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,"单词"字符使用Unicode字符集,中文的为:[\u4e00-\u9fa5],表示英文字母的为w,表示数字的为d,表示_的为_,而*号表示的则是0个或多个,|表示的则是或,所以把每个要匹配的用|拼接可以表示要匹配的正则表达式。
B. java涓妫镆ュ揿悕镄勬e垯琛ㄨ揪寮
浠ヤ笅鏄涓涓狫ava涓鐢ㄤ簬妫镆ュ揿悕镄勬e垯琛ㄨ揪寮忥纴瀹冭兘澶熷尮閰2鍒8涓姹夊瓧鎴栬2鍒16涓鑻辨枃瀛楁瘝銆
code
String regex = "^([\\u4E00-\\u9FA5]{2,8}|[a-zA-Z]{2,16})$";
鍏蜂綋瑙i喷濡备笅锛
^ 琛ㄧず鍖归厤瀛楃︿覆镄勫紑澶
() 琛ㄧず涓涓鎹曡幏缁勶纴鍏朵腑鍖呭惈浜嗕袱涓瀛愭ā寮
[\u4E00-\u9FA5] 琛ㄧず涓涓姹夊瓧瀛楃︼纴锣冨洿涓篣nicode缂栫爜镄勪腑鏂囱寖锲
{2,8} 琛ㄧず璇ュ瓧绗﹀彲浠ュ嚭鐜2鍒8娆
| 琛ㄧず阃昏緫鎴栵纴琛ㄧず涓や釜瀛愭ā寮忎腑镄勪换镒忎竴涓閮藉彲浠ュ尮閰嶆垚锷
[a-zA-Z] 琛ㄧず涓涓鑻辨枃瀛楁瘝锛屼笉鍖哄垎澶у皬鍐
{2,16} 琛ㄧず璇ュ瓧绗﹀彲浠ュ嚭鐜2鍒16娆
$ 琛ㄧず鍖归厤瀛楃︿覆镄勭粨灏
锲犳わ纴涓婇溃镄勬e垯琛ㄨ揪寮忓彲浠ュ尮閰嶉暱搴︿负2鍒8涓姹夊瓧鎴栭暱搴︿负2鍒16涓鑻辨枃瀛楁瘝镄勫瓧绗︿覆锛屽彲浠ョ敤浜庢镆ュ揿悕鏄钖︾﹀悎瑕佹眰銆
C. 请问如何用正则表达式搜重复汉字
正则表达式可以通过某些特定的语法来匹配字符串中的模式,从而实现对字符串中的某些文本的搜索和操作。在用正则表达式搜索重复汉字时,需要使用到两个关键字符:“[]”和“{}”。
以下是实现搜索重复汉字的步骤:
1:创建一个正则表达式字符竖改串,其中汉字可以使用“[]”表示,并且在重复搜索的汉字之前加握帆上“{}”。
2:使用正则表达式编译器将正则表达式字符串编译为正则表达式模式。
3:使用正则表达式模式对目标字符串进行匹配。
4:如果匹配到重复汉字,则可以通过正则表达式匹配器的“find()”方法来获取匹配到的字符串,余皮判并进行后续操作。
如下是一个实现搜索重复汉字的示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String str = "中华人民共和国";
String pattern = "([\u4e00-\u9fa5])\1+";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);
while (m.find()) {
System.out.println(m.group());
}
}
}
在这个示例中,字符串“str”中的所有重复
D. 求java一个正规表达式,只包含中文、数字、空格、冒号
只包含中文、数字、空格、冒号的Java正则表达式如下
^[\u4e00-\u9fa5 0-9:]+$
我给你个Java语言匹配只包含中文、数字、空格、冒号的程序,你看看吧.
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassCC{
publicstaticvoidmain(String[]args){
Strings="你好晚上好:2016";
Stringregex="^[\u4e00-\u9fa50-9:]+$";
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(s);
if(m.matches()){
System.out.println("匹配");
}else{
System.out.println("不匹配");
}
}
}
运行结果
匹配
E. JAVA正则表达式
http://blog.pfan.cn/iamben250/34352.html这是我的blog上面的详细介绍。配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
利用正则表达式分解和转换IP地址:
下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不正确,原因见本贴回复]
var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //结果为:abcefgi
我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。
得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1
s=" http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" 出处:蓝色理想
前一段时间写了2段EmEditor的宏,用来统计代码行数和简单的规约检查,稍微整理一下,
下面是从EmEditor的Q&A的提取的实例:双引号包含的字符串
strings surrounded by double-quotation marks
“.*?” [ ]包含的字符串
strings surrounded by [ ]
\[[^\[]*?\] 变量名
variable names
[a-zA-Z_][a-zA-Z_0-9]* IP 地址
IP addresses
([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}) 网页地址
URL
(\S+)://([^:/]+)(:(\d+))?(/[^#\s]*)(#(\S+))? 各行Tab以后的文字列
lines followed by a tab
\t.*$ 平仮名 ひらがな
Hiragana
[\x{3041}-\x{309e}] 全角片仮名 全角カタカナ
Full-width Katakana
[\x{309b}-\x{309c}\x{30a1}-\x{30fe}] 半角仮名 半角カナ
Half-width Kana
[\x{ff61}-\x{ff9f}] 中日韩 汉字
CJK ideographs
[\x{3400}-\x{9fff}\x{f900}-\x{fa2d}] 中日韩 汉字符号
CJK ideograph marks
[\x{3000}-\x{3037}] 韩国字符
Hangul
[\x{1100}-\x{11f9}\x{3131}-\x{318e}\x{ac00}-\x{d7a3}] 行头插入 //
Insert // at start of lines
Find: ^
Replace with: // 删除行头 //
Remove // at end of lines
Find: ^//
Replace: 删除行后的空白文字(包含空格和制表位 Space+Tab)
Remove trailing whitespaces
Find: \s+?$
Replace with: 将(abc)替换为[abc]
Replace (abc) with [abc]
Find: \((.*?)\)
Replace: \[\1\] 将<H3 …>替换为<H4 …>
Replace <H3 …> with <H4 …>
Find: <H3(.*?)>
Replace: <H4\1> 将9/13/2003替换为2003年9月13日
Replace 9/13/2003 with 2003.9.13
Find: ([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})
Replace: \3年\1月\2日 将字母a-z替换为大写字母
Uppercase characters from a to z
Find: [a-z]
Replace: \U\0 首字母大写
Capitalize all words
Find: ([a-zA-Z])([a-zA-Z]*)
Replace: \U\1\L\2
F. 用JAVA语言编写正则表达式匹配指定的汉字的方法
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s ]*\r 匹配HTML标记的正则表达式:/ <(.*) .* <\/\1 <(.*) \/ / 匹配首尾空格的正则表达式:(^\s*) (\s*$) 用正则表达式限制只能输入中文:onkeyup= "value=value.replace(/[^\u4E00-\u9FA5]/g, ' ') " onbeforepaste= "clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\u4E00-\u9FA5]/g, ' ')) " 用正则表达式限制只能输入全角字符: onkeyup= "value=value.replace(/[^\uFF00-\uFFFF]/g, ' ') " onbeforepaste= "clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\uFF00-\uFFFF]/g, ' ')) "
G. java中正则表达式 一个字符串中提取特定的汉字
针对本文本直接用 "_blank">(\w+) 就能匹配出来。
如果复杂点,可以判断 “福田”后面的数
如果能确定 BJ5081XCX —— 总是 9位,并且前后有空格,可以用
"_blank">(\w+)(?=\s\w{9}\s) 进一步约束