草庐IT

javascript - 仅匹配 unicode 字母

我有以下只允许字母的正则表达式:/[a-zA-Z]+/a="abcDF"if(a.match(/[a-zA-Z]+/)==a){//Match}else{//NoMatch}我如何使用p{L}(通用-任何语言,如德语、英语等。)我试过的:a.match(/[p{l}]+/)a.match(/[\p{l}]+/)a.match(/p{l}/)a.match(/\p{l}/)但对于字母a="aB"全部返回null 最佳答案 从ECMAScript2018开始,JavaScript终于支持了Unicodepropertyescapes天生

javascript - 当我期望一个匹配时,match() 返回包含两个匹配的数组

考虑以下示例:varstr="filename.jpg";varpattOne=newRegExp('\.[^\.]*$');varpattTwo=newRegExp('(\.[^\.]*$)');varpattThree=newRegExp('(\.[^\.]*$)','g');document.write(str.match(pattOne));document.write('');document.write(str.match(pattTwo));document.write('');document.write(str.match(pattThree));结果如下:.jpg.

Javascript 正则表达式 : match anything up until something (if there it exists)

我是正则表达式的新手,这可能是一个非常简单的问题(希望如此)。我正在尝试对3种字符串使用一种解决方案“45%”,预期结果:“45”“45”,预期结果:“45”"",预期结果:""我在尝试什么(让字符串为str):str.match(/(.*)(?!%*)/i)[1]这在我的脑海中听起来像是“匹配任何东西的任何实例,直到找到'%',否则就匹配任何东西”在firebug的头脑中,这听起来更像是“只匹配任何东西,完全无视负面前瞻”。也让它变得懒惰-(.*)?-似乎没有帮助。让我们暂时忘记在这种特定情况下我只是匹配数字,所以/\d*/就可以了。我试图理解一个一般规则,以便我可以随时应用它。有人

php - 在 preg_match_all() 中需要一些关于正则表达式的帮助

所以我需要从字符串中提取票号“Ticket#999999”。我该如何使用正则表达式来执行此操作。如果我在Ticket#9999中有多个号码,我当前的正则表达式可以正常工作。但是如果我只有Ticket#9,它就不起作用了,请帮忙。当前正则表达式。preg_match_all('/(Ticket#[0-9])\w\d+/i',$data,$matches);谢谢。 最佳答案 在您的模式中,[0-9]匹配1个数字,\w匹配另一个数字,\d+匹配1+个数字,因此#后需要3位数字。使用preg_match_all('/Ticket#([0-9

php - 为什么这个正则表达式模式不匹配?

这个问题在这里已经有了答案:Greedyvs.Reluctantvs.PossessiveQualifiers(7个答案)CansomeoneexplainPossessiveQuantifierstome?(RegularExpressions)(1个回答)关闭5年前。Regex101链接:https://regex101.com/r/MsZy0A/2我有以下正则表达式模式;.++b测试数据如下;aaaaaaaacaeb。我不明白的是“所有格量词”。我读过它不会回溯,它通常会这样做。但是,我认为无论如何都不必回溯?它只需要匹配包括“b”在内的所有内容,“b”将匹配两次,因为.+匹配所

PHP preg_match_all 正则表达式从 css 获取像素值( "px")

我正在寻找与PHP的preg_match_all()函数一起使用的正则表达式,它将为我提供CSS文件中的所有px值。例如,如果使用下面的css,那么预期结果将是一个数组:array("11px","0.45px","11.0005px","1.1px","888.888px")$pattern字符串是我目前所拥有的——但是它似乎没有用。我尝试使用的逻辑是:小数点前最多4位,小数点符号可选,小数点后可选,最多4位,后面跟“px”。$pattern="/([0-9]{1,4}\.*[0-9]{1,4}*px)/";$css='.some_class{font-size:11px;margi

php - 如何使用 preg_match_all 从字符串中检索三个参数?

我试图从文本中获取所有出现的代码片段和3个参数。我使用正则表达式和preg_match_allPHP函数来执行此操作。如果我在文本中只出现一次该片段,则效果很好。如果有两个或更多,我会得到一个奇怪的结果。我不是很擅长正则表达式,所以我很难理解我错过了什么。函数publicfunctiongetGallerySnippetOccurrences($text){$ptn='/{#+gallery+(src|width|height)=\[(.*)\]+(src|width|height)=\[(.*)\]+(src|width|height)=\[(.*)\]+#}/';if(preg_m

php - 如何使用 preg_match() 或其他方式找到确切的数字或单词

在网上找了很多例子都没有成功之后,我来到这里......所以,我正在使用这段代码来找到确切的词:preg_match("/\b".$searched."\b/i",file_get_contents("mytextfile1.txt"))这适用于字母/字符,但是当我将数字用作005、087、172时,IF条件始终返回FALSE...下面是两个示例:工作示例:$searched="someword";if(preg_match("/\b".$searched."\b/i",file_get_contents("mytextfile1.txt"))){//TRUE}非工作示例:$searc

PHP preg_match_all 在长字符串上失败

这是我的代码:$long=str_repeat('averylongstringtext',100);//trychanging100to5000$str=ashortstringtext$longSTR;preg_match_all('@([^]+)@sU',$str,$matched);print_r($matched);它完全按预期工作。但是,在你将100次重复更改为5000次之后,运行print_r($matched);而且您只会得到短字符串出现的结果。我的问题是如何使preg_match或preg_match_all处理大字符串文本(大至1MB或更大)?

php - 从 eregi 到 preg_match

我已经将我的php升级到5.3,所以我需要将正则表达式更改为preg_match。我已经成功地使用定界符对脚本进行了一些更改并将正则表达式更改为preg_match但我对以下代码感到震惊,尽管我没有收到任何错误cookie未被删除,但我尝试按以下方式进行更改。if(preg_match('#COOKIE_PREFIX#i',$key))原代码为//destroysthesessioncookiesfunctiondestroy($hash){foreach($_COOKIEas$key=>$value){if(eregi(COOKIE_PREFIX,$key)){$key=str_re