我有一个基本的正则表达式,它应该在最后一个反斜杠getSum($teams[2]['AREA IV']
之后返回字符串。
正则表达式:
\
在 Regex101 中正常工作。
输出
random.html
但不是在下面的Javascript示例中:
/([^\\]*$)/

输出
[" C:akepathextra andom.html"," C:akepathextra andom.html",index:0,输入:" C:akepathextra andom.html"]
答案 0 :(得分:6)
问题不在于RegEx,它与字符串本身有关。在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.
答案 1 :(得分:1)
*
匹配列表中不存在的单个字符。
量词:\
在零和无限次之间,尽可能多次,根据需要回馈
问题不在于RegEx,它与字符串本身有关。在JavaScript中,字符串"C:\\fakepath\\extra\\random.html"
用于转义后续字符。
要在字符串中使用反斜杠,请使用前面的反斜杠转义它们。
{{1}}