using System;
using SystemTextRegularExpressions;
public class Test
{
public static void Main()
{
string s = "pageId=114776896;prototypeId=2 siteId=2 ows_ID=\"076877\" AAA shopId=\"62112343\" ";
Regex reg = new Regex("ows_ID[=\"'\\s]+([^\"'])[\"']");
string str = regReplace(s,"$1");
ConsoleWriteLine(str);
}
}
首先你要matcherfind(); 因为patternmatcher(str);只是配置了matcher,必须调用find函数才会开始匹配。
而且你matchergroup(1)是获取第一个分组,但是你没有使用分组,所以得不到内容。
如果正则改成"(\\d{8})",那你就可以获得内容了。
或者String tempStr = matchergroup();或者String tempStr = matchergroup(0);,这会得到整个正则匹配到的内容。
正则用来描述字符组成规则,并不用来描述语义。
用正则加上逻辑判断。
javascript:
<script type="text/javascript">
function isFrac(t){
var a= tmatch(/^(\d+)\/(\d+)$/);
return a==null false: (parseInt(a[1])<parseInt(a[2]));
}
var a=["4/5","3/2","abc","53/124","1234/1235"];
for(var i in a){
documentwriteln(a[i]+" => "+(isFrac(a[i])"是真分数":"不是")+"<br/>");
}
</script>
=======
4/5 => 是真分数
3/2 => 不是
abc => 不是
53/124 => 是真分数
1234/1235 => 是真分数
用htmlparser吧!给你贴个用法,这个程序把content里带bgcolor属性的td标签中间的内容提取到result里,htmlparser具体用法可参照 <a href=">
java正则表达式提取需要用到Matcher类。
正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
Pattern pattern
= Patternpile("(\\d)[^\\d]$")
Matcher matcher
= patternmatcher(s)
if(matcherfind())
Systemoutprintln
(matchergroup(1)); } }
如何获取字符串中匹配到正则表达式的子串开mport javautilregexMatcher;import javautilregexPattern;public class Test {public static void main(String[] args) {String s = "A876X"; 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”Pattern pattern = Patternpile("(\\d)[^\\d]$");Matcher matcher = patternmatcher(s);if(matcherfind())Systemoutprintln(matchergroup(1));}}
正则表达式获取字符串string pattern=@"<font>(+)</font>"
取分组 Matchgroup[1]
JS如何用正则表达式 获取字符串内的匹配部份?实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test
实现的机制:通过replace的回调函数获取。
可以通过下面的代码获取匹配部分
var str = "abcdefgname='test'sddfhskshjsfsjdfps";
var reg = /name='((\w|-|\s)+)/ig;
strreplace(reg, function() {
consolelog(argumentslength); 5
consolelog(arguments[1]);test
});
字符串 stringObject 的 replace() 方法执行的是查找并替换的 *** 作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
正则表达式如何获取被匹配字符串的匹配组名java正则提取需要用到Matcher类,下面给出案例示例供参考
需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6
import javautilregexMatcher;
import javautilregexPattern;
public class Test {
public static void main(String[] args) {
String s = "A876X";
把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来
在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
Pattern pattern = Patternpile("(\\d)[^\\d]$");
Matcher matcher = patternmatcher(s);
if(matcherfind())
Systemoutprintln(matchergroup(1));
}
}
关于Matcher 中的几个方法说明:
Mathcerstart()
Matcherend()
Matchergroup()
当使用matches(),lookingAt(),find()执行匹配 *** 作后,就可以利用以上三个方法得到更详细的信息
start()返回匹配到的子字符串在字符串中的索引位置
end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置
group()返回匹配到的子字符串
示例代码如下,具体功能请参考注释
Pattern p=Patternpile(“\d+”);
Matcher m=pmatcher(“aaa2223bb”);
mfind();匹配2223
mstart();返回3
mend();返回7,返回的是2223后的索引号
mgroup();返回2223
Mathcer m2=pmatcher(“2223bb”);
m2lookingAt(); 匹配2223
m2start(); 返回0,由于lookingAt()只能匹配前面的字符串,所以当使用lookingAt()匹配时,start()方法总是返回0
m2end(); 返回4
m2group(); 返回2223
Matcher m3=pmatcher(“2223”); 如果Matcher m3=pmatcher(“2223bb”); 那么下面的方法出错,因为不匹配返回false
m3matches(); 匹配整个字符串
m3start(); 返回0
m3end(); 返回3,原因相信大家也清楚了,因为matches()需要匹配所有字符串
m3group(); 返回2223
另外,Mathcer类中start(),end(),group()均有一个重载方法它们是start(int i),end(int i),group(int i)专用于分组 *** 作,Mathcer类还有一个groupCount()用于返回有多少组
示例如下:
Pattern p=Patternpile(“([a-z]+)(\d+)”);
Matcher m=pmatcher(“aaa2223bb”);
mfind(); 匹配aaa2223
mgroupCount(); 返回2,因为有2组
mstart(1); 返回0 返回第一组匹配到的子字符串在字符串中的索引号
mstart(2); 返回3
mend(1); 返回3 返回第一组匹配到的子字符串的最后一个字符在字符串中的索引位置
mend(2); 返回7
mgroup(1); 返回aaa,返回第一组匹配到的子字符串
mgroup(2); 返回2223,返回第二组匹配到的子字符串
注意: 只有当匹配 *** 作成功,才可以使用start(),end(),group()三个方法,否则会抛出javalangIllegalStateException,也就是当matches(),lookingAt(),find()其中任意一个方法返回true时,才可以使用。
C# 正则表达式获取字符串针对你的问题:
<aa>是给数组命名
(<name>subexpression)
其中name是有效的组名称,而subexpression是任何有效的正则表达式模式。 name不得包含任何标点符号字符,并且不能以数字开头。
这个方式相当于下面这个表达式
"(<!0-9a-zA-Z)([0-9]|[a-z]|[A-Z]){1,}"
java正则表达式如何获取分组匹配内容String str = "我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@aaa";
\d 表示0-9 任意一个数字 后面有+号 说明这个0-9单个数位出现一到多次 比如21312314
String reg = "\\d+";
Pattern是一个正则表达式经编译后的表现模式。
Pattern pattern = Patternpile (reg);
Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。
Matcher matcher = patternmatcher (str);
只有执行了find()方法 后,状态机matcher才是真正开始进行匹配工作的!
while (matcherfind ())
{
matchergroup()返回匹配到的子字符串
Systemoutprintln (matchergroup ());
}
}
Java正则表达式匹配是否存在字符串。正则表达式为:abc
package test;
import javautilregexMatcher;
import javautilregexPattern;
public class RegexTest {
/
@param args
/
public static void main(String[] args) {
TODO Auto-generated method stub
String source = "abcdefg\n" +
"uaibec\n" +
"wabbcd\n" +
"adb\n" +
"acb";
String regex = "(abc)";
Pattern pattern = Patternpile(regex,PatternMULTILINE);
Matcher matcher = patternmatcher(source);
while(matcherfind()){
Systemoutprintln(matchergroup());
}
}
}
你可以直接复制出来,运行一下就可以了
唉,专门替你试了下,代码如下。
String str = "lkjhgf<a herf=\" fdsdadf, \" title=\"韩国和规范\">yfffgfg<a herf=\"gfytffjhhjg\" title=\"预付费更改\">iuiuyuytf<a herf=\"fhgytfddtr\" title=\"了解客户感觉\">uigfg";Pattern p = Patterncompile("title=\"(+)\"");
Matcher m = pmatcher(str);
while(mfind()) {
Systemoutprintln(mgroup(1));
}
以上就是关于正则字符串中 获取特定的参数值全部的内容,包括:正则字符串中 获取特定的参数值、正则表达式如何获取匹配的部分、正分数的 正则表达式怎么写 比如1/2 ;2/3 之类的。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)