有没有简单的方法来检查字符串的第一个和最后一个字符是否相同,只有正则表达式?
我知道你可以咨询charAt
var firstChar = str.charAt(0);
var lastChar = str.charAt(length-1);
console.log(firstChar===lastChar):
Run Code Online (Sandbox Code Playgroud)
我不是要求这个:正则表达式匹配第一个和最后一个字符
我需要创建一个正则表达式,无论字符串中的空格如何,该表达式都应查找最后的“ *”。然后,我需要用一些文本替换该字符串。
当前,它将替换字符串中首次出现的“ *”。
我如何解决它?
这是我的代码:
const regex = /\*/m;
const str = 'Field Name* * ';
const replaceStr = ' mandatory';
const result = str.replace(regex, replaceStr);
console.log('Substitution result: ', result);
Run Code Online (Sandbox Code Playgroud)
在此,输出应为“字段名称*必填”。但是我得到的是“必填字段名称*”。
我的多个字符串如下所示
###
some content
that I need to match
and might have some special character in it such as | <> []
###
Run Code Online (Sandbox Code Playgroud)
我试图得到哈希之间的内容.我试过下面的正则表达式,但它不匹配它并返回null.
var regex = /### ((.|\n)*) ###/;
var match= regex.exec(aboveContentAsString);
console.log(match[1]);
Run Code Online (Sandbox Code Playgroud) 我想使用greasemonkey从Last.fm中抓取wiki数据(这不适用于他们的REST api).我可以使用GM_xmlhttpRequest()获取页面,并且它正在正常返回.
我不想使用DOM处理器来处理整个页面,因为我只想要一个小块,所以我使用正则表达式.
维基数据在页面中如下:
<div id="wiki">
description
description
...
</div>
Run Code Online (Sandbox Code Playgroud)
所以我写道:
/\<div id="wiki"\>(.+)\<\/div\>/m.exec(data)[1];
Run Code Online (Sandbox Code Playgroud)
当我在错误控制台中测试它时(多行被平铺成一行,它可以工作,但在页面上它失败并说
Error: /\<div id="wiki"\>(.+)\<\/div\>/m.exec(data) is null
Source File: file:///home/jeff/.mozilla/firefox/x4su9596.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js
Line: 357
Run Code Online (Sandbox Code Playgroud)
我猜多线模式不会使多线匹配新线,这是我的预期.如何使其匹配任何字符,包括换行符?
我在尝试执行捕获两个引号之间的所有内容的正则表达式时偶然发现了一个问题""。我注意到有时这些引号之间会出现换行符,从而破坏正则表达式。
我正在使用的当前正则表达式: \"((?:(?![(]).)*)\"
这可以很好地捕获引号之间的所有内容,除非发生换行。
任何正则表达式专家都知道如何允许换行,这种模式让我难住了。