正则表达式,求匹配条件!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式,求匹配条件!相关的知识,希望对你有一定的参考价值。

<head>
<script type="text/javascript">
function show(periodnum,awardnum,flashobj)

var flashobj = document.all("Lottery");
var awardnum, periodnum;
periodnum= '503964';
awardnum='10|12|21|23|24|30|33|42|46|48|49|53|57|58|59|60|63|64|65|67/2';
flashobj.SetVariable('_level0.Lottery.periodnum.text', periodnum);
flashobj.SetVariable('_level0.Lottery.awardnum.text', awardnum);
flashobj.TCallFrame("_level0",1);

</script>
</head>
<body bgcolor="#0000ff" leftmargin="0" topmargin="0" onload="show();">
</body>
</html>
上面是一个String 字符串输出的内容,有部分省略,现在我需要function中的(periodnum= '503964';)periodnum后面的一组数字,请问用正则表达式,应该怎么写匹配条件?在此先谢谢了!

periodnum\\s+=\\s+\\'\\d+\\' 参考技术A periodnum=\s\'(\d+)\';
得到的结果是 503964

periodnum=\s\'\d+\';
得到的结果是periodnum= '503964'
参考技术B \d6, 看你这组数字有啥长度要求嘛!追问

不行,因为我省略的部分有好多相同长度的数字,唯一的,就是在function show(periodnum,awardnum,flashobj) 中的第一个参数。
periodnum= '503964';
取periodnum后面的503964。而且periodnum是一个变量,503964不是唯一的值!

追答

那你这些数字的长度是随机的?

追问

长度是不变的,但数字是随机的!

追答

那如果是6位数 直接用\d6不可以吗?

追问

是的,但是必须是periodnum属性后面的数字!我前面已经写好了,你看看。

参考技术C ^periodnum=.\'\d6\'.$ 参考技术D /^\d+$/追问

不行啊!
Pattern p1=Pattern.compile("/^\d+$/");
Matcher regexMatcher=p1.matcher(str);
直接报错啊!

追答

^\\d+$ 需要去转义一下!
试试这个,看看行不行

如何在javascript中有条件地返回正则表达式匹配? [复制]

【中文标题】如何在javascript中有条件地返回正则表达式匹配? [复制]【英文标题】:How to return a regex match conditionally in javascript? [duplicate] 【发布时间】:2021-10-15 14:33:15 【问题描述】:

我们怎样才能优雅地返回一个可能的字符串正则表达式匹配而不运行两次匹配?

// Works fine, returns "pdf"
let ext = "file.with.extension.pdf".match(/\.([a-z]+)$/)[1];
// Exception, we'd like just null or ''
let ext = "nofileextension".match(/\.([a-z]+)$/)[1];
// Duplicate execution
let ext = "nofileextension".match(/\.([a-z]+)$/) && "nofileextension".match(/\.([a-z]+)$/)[1];

对于可能返回数组的方法,是否没有可选链接 ()?[1]

let ext = "nofileextension".match(/\.([a-z]+)$/)?[1];

【问题讨论】:

【参考方案1】:

您可以使用?.,然后数组索引只有在对象存在时才会执行:

console.log("document123.pdf".match(/\.([a-z]+)$/)?.[1]);
console.log("nofileextension".match(/\.([a-z]+)$/)?.[1]);

【讨论】:

以上是关于正则表达式,求匹配条件!的主要内容,如果未能解决你的问题,请参考以下文章

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式

正则表达式,匹配IP地址的,求大神帮我解释这行代码。^([1-9][1-9][0-9]1[0-

求一个PHP正则表达式匹配(字母、数字、汉字、下划线)