正则表达式不返回预期值
Regex not returning expected value
我有一个基本的正则表达式,应该在最后一个反斜杠'
之后返回字符串。
正则表达式 :
/([^'']*$)/
在正则表达式 101 中工作正常。
输出:
随机.html
但不是在下面的Javascript示例中:
console.log("C:'fakepath'extra'random.html".match(/([^'']*$)/));
输出:
["C:阿克帕特尔特 andom.html", "C: akepathextra andom.html",索引: 0, 输入: "C: akepathextra Andom.html"]
问题不在于正则表达式,而在于字符串本身。在 JavaScript 字符串中,'
用于转义以下字符。
字符串
"C:'fakepath'extra'random.html"
是逃跑后
C:akepathextra
andom.html
若要在字符串中使用反斜杠,请通过前面的反斜杠对其进行转义。
"C:''fakepath''extra''random.html"
console.log("C:''fakepath''extra''random.html".match(/[^'']*$/));
要获取上次'
之后的文本,请使用 String#split
和 Array#pop
"C:''fakepath''extra''random.html".split('''').pop() // random.html
^^ Note: this backslash also need to be escaped.
[^'']*
匹配列表中不存在的单个字符。
量词:*
在零到无限次之间,尽可能多地回馈,根据需要回馈
问题不在于正则表达式,而在于字符串本身。在 JavaScript 字符串中,'
用于转义以下字符。要在字符串中使用反斜杠,请通过前面的反斜杠对其进行转义。
"C:''fakepath''extra''random.html"
相关文章:
- 如何匹配多个值使用正则表达式返回单个值
- 查找大写字母的简单正则表达式是返回小写字母
- 使用正则表达式返回部分字符串
- 返回Javascript中给定正则表达式的文本范围数组
- Javascript正则表达式,返回连字符和空格后面的数字
- 为什么这个正则表达式返回前面的字符
- 正则表达式查找字符串并返回大括号之间的所有内容
- 为什么我的正则表达式没有为我的文本输入返回正确的值
- JavaScript 正则表达式返回拆分的结果
- 正则表达式搜索短语,在短语后返回“n”个字符
- Javascript从某些元素中提取日期与匹配和正则表达式返回空数组
- 正则表达式中的括号单位返回额外的匹配项
- JavaScript 正则表达式,返回模式之前和之后的所有内容
- 尽管在正则表达式中使用了全局修饰符,但只有一个项目返回
- 在 javascript 正则表达式中返回多个元素
- JavaScript 正则表达式 exec() 返回列表中重复的匹配,为什么
- 如果字符串与正则表达式 JavaScript 不匹配,则返回 True
- 在 javascript 中返回正则表达式的每个匹配中捕获的第一个组
- 检查字符串末尾是否有有效的正则表达式,并返回正则表达式-的修剪字符串
- JavaScript只从字符串返回正则表达式