我正在尝试匹配所有以--
开头并以单个空格结尾的字符串。
我正在处理的文件是OpenVPN手册,我想要提及所有选项(例如--option
)。
我正在使用Sublime Text,根据其备忘单,他们支持\A
和\Z
来表示字符串的开头和结尾。
因此,我认为\A--.* \Z
应匹配所有字符串,从--
开始到结尾。
然而,这根本不匹配。
什么正则表达式匹配所有字符串,从双短划线开始,以空格字符结尾?任何与其位置无关的事件都应该匹配。
答案 0 :(得分:2)
我认为由于使用 string ,您的问题引起了一些混乱。您可能想查找计算机科学的用法(例如here)。您正在寻找的是单词,从--
开始,以空格结束(或者可能是行尾)。
您可以在此处使用(?:^|(?<=\s))--\S+
。
(?:^|(?<=\s))
检查前面是否有空格或行的开头(使用lookbehind)--\S+
匹配双-
和一个或多个非空格字符
另一种可能性是(?:^|(?<=\s))--\w+(?=\s|$)
。在这里,它查找一系列单词字符(字母,数字,下划线),并通过前瞻确保它以空格或行尾结束。
答案 1 :(得分:0)
"--.* "
在这里,您将匹配以foo开头并以bar结尾的所有内容
然后在你的情况下尝试
a017kjantina
刚刚在崇高的文本3中测试了它的工作原理
答案 2 :(得分:0)
您可以做的一件事就是将它们添加到.prototype
中并创建自己的startsWith()
和endsWith()
函数
这样您就可以执行string.startsWith("starts with this");
和string.endsWith("ends with this");
了,我使用的是substring
而不是indexOf
,因为它不需要扫描整个字符串就更快。另外,如果将空字符串传递给函数,它们将返回false
。
参考链接Here
if ( typeof String.prototype.startsWith != 'function' ) {
String.prototype.startsWith = function( str ) {
return str.length > 0 && this.substring( 0, str.length ) === str;
}
};
if ( typeof String.prototype.endsWith != 'function' ) {
String.prototype.endsWith = function( str ) {
return str.length > 0 && this.substring( this.length - str.length, this.length ) === str;
}
};