所以我有一个字符串:
"this is the beginning, this is what i want to remove/ and this is the end"
如何使用 Javascript 来定位逗号和正斜杠之间的字符串?
(我还想删除逗号和斜杠)
string = string.replace( /,.*?\//, '' );
In the regexp, ,
与自身相匹配,.*?
匹配任何字符序列(首选最短匹配,因为?
修饰符)和\/
匹配斜杠。 (斜杠需要用反斜杠转义,因为它也用作正则表达式分隔符。不幸的是,JavaScript 不支持替代的正则表达式文字分隔符,因此您只需处理牙签倾斜综合征.)
请注意,上面的代码删除了所有内容first逗号到first字符串中的斜杠后面。根据您希望在存在多个逗号或斜杠时发生的情况,有多种方法可以修改正则表达式的行为。例如:
-
.replace( /,.*\//, '' )
删除所有内容first逗号到last slash;
-
.replace( /^(.*),.*?\//, '$1' )
删除所有内容last逗号后跟斜杠,直到下一个斜杠;
-
.replace( /^(.*),.*\//, '$1' )
删除所有内容last逗号后跟斜杠,直到last字符串中的斜线;
-
.replace( /,[^\/]*\//, '' )
与原始正则表达式相同,即删除从第一个逗号到后面第一个斜杠的所有内容(即使中间还有其他逗号);
-
.replace( /,[^,\/]*\//, '' )
删除以逗号开头并以斜杠结尾的第一个子字符串,并且之间不包含任何逗号或斜杠;
-
.replace( /^(.*),[^,\/]*\//, '$1' )
删除last以逗号开头、以斜杠结尾且中间没有逗号或斜杠的子字符串;和
-
.replace( /^,[^,\/]*\//g, '' )
删除all以逗号开头、以斜杠结尾且中间没有逗号或斜杠的子字符串。
另请注意,由于正则表达式语法的历史怪癖,.
元字符实际上会匹配任何字符except换行符 ("\n"
)。大多数正则表达式实现都提供了一些方法来关闭这个怪癖并使得.
确实匹配所有字符,但 JavaScript 由于某种原因不能匹配。如果您的字符串可能包含换行符,您应该替换所有出现的.
在上面的正则表达式中,有一些解决方法例如[\s\S]
(适用于大多数 PCRE 风格的正则表达式引擎)或[^]
(更短,但特定于 JavaScript 正则表达式风格)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)